<?xml version = "1.0" encoding = "UTF-8"?>
<!--Generated by Turbo XML 2.4.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
<xsd:schema xmlns = "http://webstds.ipc.org/2581"
	 targetNamespace = "http://webstds.ipc.org/2581"
	 xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
	<xsd:simpleType name = "angleType">
		<xsd:restriction base = "xsd:decimal">
			<xsd:minInclusive value = "0.00"/>
			<xsd:maxExclusive value = "360.00"/>
			<xsd:totalDigits value = "3"/>
			<xsd:fractionDigits value = "2"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "bitUnitType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "CUSTOM"/>
			<xsd:enumeration value = "INCHFRACTION"/>
			<xsd:enumeration value = "WIREGAUGE"/>
			<xsd:enumeration value = "LETTER"/>
			<xsd:enumeration value = "MILLIMETER"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "bomCategoryType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "ELECTRICAL"/>
			<xsd:enumeration value = "PROGRAMMABLE"/>
			<xsd:enumeration value = "MECHANICAL"/>
			<xsd:enumeration value = "MATERIAL"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "booleanAttributeName">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "smd"/>
			<xsd:enumeration value = "gold_plating"/>
			<xsd:enumeration value = "n_electric"/>
			<xsd:enumeration value = "nomenclature"/>
			<xsd:enumeration value = "tear_drop"/>
			<xsd:enumeration value = "pattern_fill"/>
			<xsd:enumeration value = "drill_noopt"/>
			<xsd:enumeration value = "foot_down"/>
			<xsd:enumeration value = "et_align"/>
			<xsd:enumeration value = "full_plane"/>
			<xsd:enumeration value = "out_orig"/>
			<xsd:enumeration value = "net_point"/>
			<xsd:enumeration value = "test_point"/>
			<xsd:enumeration value = "imp_line"/>
			<xsd:enumeration value = "non_tp"/>
			<xsd:enumeration value = "patch"/>
			<xsd:enumeration value = "shave"/>
			<xsd:enumeration value = "mount_hole"/>
			<xsd:enumeration value = "tooling_hole"/>
			<xsd:enumeration value = "is_capped"/>
			<xsd:enumeration value = "lpol_surf"/>
			<xsd:enumeration value = "critical_net"/>
			<xsd:enumeration value = "critical_tp"/>
			<xsd:enumeration value = "orbotech_plot_stamp"/>
			<xsd:enumeration value = "skip_indicator"/>
			<xsd:enumeration value = "out_mirror"/>
			<xsd:enumeration value = "lpol_done"/>
			<xsd:enumeration value = "cu_base"/>
			<xsd:enumeration value = "out_drill_full"/>
			<xsd:enumeration value = "out_drill_optional"/>
			<xsd:enumeration value = "out_rout_optional"/>
			<xsd:enumeration value = "array_with_rotation"/>
			<xsd:enumeration value = "out_break"/>
			<xsd:enumeration value = "out_scale"/>
			<xsd:enumeration value = "break_away"/>
			<xsd:enumeration value = "center_fiducial"/>
			<xsd:enumeration value = "comp_ign_spacing"/>
			<xsd:enumeration value = "no_tp_under"/>
			<xsd:enumeration value = "no_hole_under"/>
			<xsd:enumeration value = "no_trace_under"/>
			<xsd:enumeration value = "no_copper_shape_under"/>
			<xsd:enumeration value = "no_uncap_via_under"/>
			<xsd:enumeration value = "no_text_under"/>
			<xsd:enumeration value = "no_fiducial_check"/>
			<xsd:enumeration value = "thvpad_required"/>
			<xsd:enumeration value = "label_clearance"/>
			<xsd:enumeration value = "guard_comp"/>
			<xsd:enumeration value = "needs_guarding"/>
			<xsd:enumeration value = "ind_orient_req"/>
			<xsd:enumeration value = "is_burried"/>
			<xsd:enumeration value = "is_shadowed"/>
			<xsd:enumeration value = "is_wirebonded"/>
			<xsd:enumeration value = "spo_shape_stretch"/>
			<xsd:enumeration value = "toep_nochk_o_side"/>
			<xsd:enumeration value = "no_pop"/>
			<xsd:enumeration value = "comp_ignore"/>
			<xsd:enumeration value = "hp3070_test"/>
			<xsd:enumeration value = "drc_bend_keepout"/>
			<xsd:enumeration value = "drc_board"/>
			<xsd:enumeration value = "drc_mech"/>
			<xsd:enumeration value = "drc_etch_lyrs_all"/>
			<xsd:enumeration value = "drc_comp_keepin"/>
			<xsd:enumeration value = "drc_tp_keepin"/>
			<xsd:enumeration value = "drc_route_keepin"/>
			<xsd:enumeration value = "drc_comp_keepout"/>
			<xsd:enumeration value = "drc_tp_keepout"/>
			<xsd:enumeration value = "drc_trace_keepout"/>
			<xsd:enumeration value = "drc_pad_keepout"/>
			<xsd:enumeration value = "drc_plane_keepout"/>
			<xsd:enumeration value = "drc_via_keepout"/>
			<xsd:enumeration value = "drc_route_keepout"/>
			<xsd:enumeration value = "drc_comp_height"/>
			<xsd:enumeration value = "vcut"/>
			<xsd:enumeration value = "hatch"/>
			<xsd:enumeration value = "hatch_border"/>
			<xsd:enumeration value = "hatch_serrated_border"/>
			<xsd:enumeration value = "dxf_dimension"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "butterflyShapeType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "ROUND"/>
			<xsd:enumeration value = "SQUARE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "cadPinType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "THRU"/>
			<xsd:enumeration value = "BLIND"/>
			<xsd:enumeration value = "SURFACE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "cadPropertyType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "DOUBLE"/>
			<xsd:enumeration value = "INTEGER"/>
			<xsd:enumeration value = "BOOLEAN"/>
			<xsd:enumeration value = "STRING"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "certificationCategoryType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "ASSEMBLYDRAWING"/>
			<xsd:enumeration value = "ASSEMBLYFIXTUREGENERATION"/>
			<xsd:enumeration value = "ASSEMBLYPANEL"/>
			<xsd:enumeration value = "ASSEMBLYPREPTOOLS"/>
			<xsd:enumeration value = "ASSEMBLYTESTFIXTUREGENERATION"/>
			<xsd:enumeration value = "ASSEMBLYTESTGENERATION"/>
			<xsd:enumeration value = "BOARDFABRICATION"/>
			<xsd:enumeration value = "BOARDFIXTUREGENERATION"/>
			<xsd:enumeration value = "BOARDPANEL"/>
			<xsd:enumeration value = "BOARDTESTGENERATION"/>
			<xsd:enumeration value = "COMPONENTPLACEMENT"/>
			<xsd:enumeration value = "DETAILEDDRAWING"/>
			<xsd:enumeration value = "FABRICATIONDRAWING"/>
			<xsd:enumeration value = "GENERALASSEMBLY"/>
			<xsd:enumeration value = "GLUEDOT"/>
			<xsd:enumeration value = "MECHANICALHARDWARE"/>
			<xsd:enumeration value = "MULTIBOARDPARTSLIST"/>
			<xsd:enumeration value = "PHOTOTOOLS"/>
			<xsd:enumeration value = "SCHEMATICDRAWINGS"/>
			<xsd:enumeration value = "SINGLEBOARDPARTSLIST"/>
			<xsd:enumeration value = "SOLDERSTENCILPASTE"/>
			<xsd:enumeration value = "SPECSOURCECONTROLDRAWING"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "certificationStatusType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "ALPHA"/>
			<xsd:enumeration value = "BETA"/>
			<xsd:enumeration value = "CERTIFIED"/>
			<xsd:enumeration value = "SELFTEST"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "contextType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "BOARD"/>
			<xsd:enumeration value = "BOARDPANEL"/>
			<xsd:enumeration value = "ASSEMBLY"/>
			<xsd:enumeration value = "ASSEMBLYARRAY"/>
			<xsd:enumeration value = "DOCUMENTATION"/>
			<xsd:enumeration value = "TOOLING"/>
			<xsd:enumeration value = "COUPON"/>
			<xsd:enumeration value = "MISC"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "dfxCategoryType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "COMPONENT"/>
			<xsd:enumeration value = "BOARDFAB"/>
			<xsd:enumeration value = "ASSEMBLY"/>
			<xsd:enumeration value = "TESTING"/>
			<xsd:enumeration value = "DATAQUALITY"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "donutShapeType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "ROUND"/>
			<xsd:enumeration value = "SQUARE"/>
			<xsd:enumeration value = "HEXAGON"/>
			<xsd:enumeration value = "OCTAGON"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "doubleAttributeName">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "pitch"/>
			<xsd:enumeration value = "string_angle"/>
			<xsd:enumeration value = "spacing_req"/>
			<xsd:enumeration value = "board_thickness"/>
			<xsd:enumeration value = "out_x_scale"/>
			<xsd:enumeration value = "out_y_scale"/>
			<xsd:enumeration value = "out_comp"/>
			<xsd:enumeration value = "eda_layers"/>
			<xsd:enumeration value = "et_adjacency"/>
			<xsd:enumeration value = "layer_dielectric"/>
			<xsd:enumeration value = "fill_dx"/>
			<xsd:enumeration value = "fill_dy"/>
			<xsd:enumeration value = "image_dx"/>
			<xsd:enumeration value = "image_dy"/>
			<xsd:enumeration value = "local_fiducial_dist"/>
			<xsd:enumeration value = "comp_height"/>
			<xsd:enumeration value = "comp_htol_plus"/>
			<xsd:enumeration value = "comp_htol_minus"/>
			<xsd:enumeration value = "comp_weight"/>
			<xsd:enumeration value = "spo_shape_rotate"/>
			<xsd:enumeration value = "spo_move_center"/>
			<xsd:enumeration value = "spo_w_val"/>
			<xsd:enumeration value = "spo_w_fact"/>
			<xsd:enumeration value = "spo_h_val"/>
			<xsd:enumeration value = "spo_h_fact"/>
			<xsd:enumeration value = "spo_s_val"/>
			<xsd:enumeration value = "spo_s_fact"/>
			<xsd:enumeration value = "spo_p_val"/>
			<xsd:enumeration value = "spo_p_fact"/>
			<xsd:enumeration value = "toep_spacing_req"/>
			<xsd:enumeration value = "hp3070_tol_pos"/>
			<xsd:enumeration value = "hp3070_tol_neg"/>
			<xsd:enumeration value = "hp3070_hi_value"/>
			<xsd:enumeration value = "hp3070_lo_value"/>
			<xsd:enumeration value = "hp3070_seriesr"/>
			<xsd:enumeration value = "gencad_device_ptol"/>
			<xsd:enumeration value = "gencad_device_ntol"/>
			<xsd:enumeration value = "drc_max_height"/>
			<xsd:enumeration value = "drc_min_height"/>
			<xsd:enumeration value = "net_length_min"/>
			<xsd:enumeration value = "net_length_max"/>
			<xsd:enumeration value = "dpair_gap"/>
			<xsd:enumeration value = "eclass_voltage_swing"/>
			<xsd:enumeration value = "eclass_impedance"/>
			<xsd:enumeration value = "eclass_rise_time"/>
			<xsd:enumeration value = "eclass_min_stub_length"/>
			<xsd:enumeration value = "eclass_max_stub_length"/>
			<xsd:enumeration value = "min_line_width"/>
			<xsd:enumeration value = "ar_pad_drill_top_min"/>
			<xsd:enumeration value = "ar_pad_drill_top_max"/>
			<xsd:enumeration value = "ar_pad_drill_inner_min"/>
			<xsd:enumeration value = "ar_pad_drill_inner_max"/>
			<xsd:enumeration value = "ar_pad_drill_bottom_min"/>
			<xsd:enumeration value = "ar_pad_drill_bottom_max"/>
			<xsd:enumeration value = "ar_sm_pad_top_min"/>
			<xsd:enumeration value = "ar_sm_pad_top_max"/>
			<xsd:enumeration value = "ar_sm_pad_bottom_min"/>
			<xsd:enumeration value = "ar_sm_pad_bottom_max"/>
			<xsd:enumeration value = "ar_sm_drill_top_min"/>
			<xsd:enumeration value = "ar_sm_drill_top_max"/>
			<xsd:enumeration value = "ar_sm_drill_bottom_min"/>
			<xsd:enumeration value = "ar_sm_drill_bottom_max"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "drillType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "CARBIDE"/>
			<xsd:enumeration value = "ROUTER"/>
			<xsd:enumeration value = "LASER"/>
			<xsd:enumeration value = "FLATNOSE"/>
			<xsd:enumeration value = "EXTENSION"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "enterpriseCodeType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "DUNNS"/>
			<xsd:enumeration value = "CAGE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "exposureType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "EXPOSED"/>
			<xsd:enumeration value = "COVERED_PRIMARY"/>
			<xsd:enumeration value = "COVERED_SECONDARY"/>
			<xsd:enumeration value = "COVERED"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "floorLifeType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "UNLIMITED"/>
			<xsd:enumeration value = "1_YEAR"/>
			<xsd:enumeration value = "4_WEEKS"/>
			<xsd:enumeration value = "168_HOURS"/>
			<xsd:enumeration value = "72_HOURS"/>
			<xsd:enumeration value = "48_HOURS"/>
			<xsd:enumeration value = "24_HOURS"/>
			<xsd:enumeration value = "BAKE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "historyNumberType">
		<xsd:restriction base = "xsd:string">
			<xsd:pattern value = "[0-9]+(.[0-9]+)*"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "integerAttributeName">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "drill_flag"/>
			<xsd:enumeration value = "rout_chain"/>
			<xsd:enumeration value = "rout_flag"/>
			<xsd:enumeration value = "pilot_hole"/>
			<xsd:enumeration value = "out_flag"/>
			<xsd:enumeration value = "extended"/>
			<xsd:enumeration value = "feed"/>
			<xsd:enumeration value = "speed"/>
			<xsd:enumeration value = "cut_line"/>
			<xsd:enumeration value = "aoi_drcu"/>
			<xsd:enumeration value = "aoi_drbm"/>
			<xsd:enumeration value = "aoi_cpcu"/>
			<xsd:enumeration value = "aoi_cpbm"/>
			<xsd:enumeration value = "aoi_value"/>
			<xsd:enumeration value = "orig_surf"/>
			<xsd:enumeration value = "eda_dimension_id"/>
			<xsd:enumeration value = "output_dcode"/>
			<xsd:enumeration value = "design_origin_x"/>
			<xsd:enumeration value = "design_origin_y"/>
			<xsd:enumeration value = "out_drill_order"/>
			<xsd:enumeration value = "out_rout_order"/>
			<xsd:enumeration value = "num_local_fiducials"/>
			<xsd:enumeration value = "src_orientation"/>
			<xsd:enumeration value = "rot_correction"/>
			<xsd:enumeration value = "drc_min_space"/>
			<xsd:enumeration value = "drc_min_width"/>
			<xsd:enumeration value = "drc_add_rad"/>
			<xsd:enumeration value = "eclass_max_via_count"/>
			<xsd:enumeration value = "testpoint_count"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "isoCodeType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "AD"/>
			<xsd:enumeration value = "AE"/>
			<xsd:enumeration value = "AF"/>
			<xsd:enumeration value = "AG"/>
			<xsd:enumeration value = "AI"/>
			<xsd:enumeration value = "AL"/>
			<xsd:enumeration value = "AM"/>
			<xsd:enumeration value = "AN"/>
			<xsd:enumeration value = "AO"/>
			<xsd:enumeration value = "AQ"/>
			<xsd:enumeration value = "AR"/>
			<xsd:enumeration value = "AS"/>
			<xsd:enumeration value = "AT"/>
			<xsd:enumeration value = "AU"/>
			<xsd:enumeration value = "AW"/>
			<xsd:enumeration value = "AZ"/>
			<xsd:enumeration value = "BA"/>
			<xsd:enumeration value = "BB"/>
			<xsd:enumeration value = "BD"/>
			<xsd:enumeration value = "BE"/>
			<xsd:enumeration value = "BF"/>
			<xsd:enumeration value = "BG"/>
			<xsd:enumeration value = "BH"/>
			<xsd:enumeration value = "BI"/>
			<xsd:enumeration value = "BJ"/>
			<xsd:enumeration value = "BM"/>
			<xsd:enumeration value = "BN"/>
			<xsd:enumeration value = "BO"/>
			<xsd:enumeration value = "BR"/>
			<xsd:enumeration value = "BS"/>
			<xsd:enumeration value = "BT"/>
			<xsd:enumeration value = "BV"/>
			<xsd:enumeration value = "BW"/>
			<xsd:enumeration value = "BY"/>
			<xsd:enumeration value = "BZ"/>
			<xsd:enumeration value = "CA"/>
			<xsd:enumeration value = "CC"/>
			<xsd:enumeration value = "CF"/>
			<xsd:enumeration value = "CG"/>
			<xsd:enumeration value = "CH"/>
			<xsd:enumeration value = "CI"/>
			<xsd:enumeration value = "CK"/>
			<xsd:enumeration value = "CL"/>
			<xsd:enumeration value = "CM"/>
			<xsd:enumeration value = "CN"/>
			<xsd:enumeration value = "CO"/>
			<xsd:enumeration value = "CR"/>
			<xsd:enumeration value = "CU"/>
			<xsd:enumeration value = "CV"/>
			<xsd:enumeration value = "CX"/>
			<xsd:enumeration value = "CY"/>
			<xsd:enumeration value = "CZ"/>
			<xsd:enumeration value = "DE"/>
			<xsd:enumeration value = "DJ"/>
			<xsd:enumeration value = "DK"/>
			<xsd:enumeration value = "DM"/>
			<xsd:enumeration value = "DO"/>
			<xsd:enumeration value = "DZ"/>
			<xsd:enumeration value = "EC"/>
			<xsd:enumeration value = "EE"/>
			<xsd:enumeration value = "EG"/>
			<xsd:enumeration value = "EH"/>
			<xsd:enumeration value = "ER"/>
			<xsd:enumeration value = "ES"/>
			<xsd:enumeration value = "ET"/>
			<xsd:enumeration value = "FI"/>
			<xsd:enumeration value = "FJ"/>
			<xsd:enumeration value = "FK"/>
			<xsd:enumeration value = "FM"/>
			<xsd:enumeration value = "FO"/>
			<xsd:enumeration value = "FR"/>
			<xsd:enumeration value = "FX"/>
			<xsd:enumeration value = "GA"/>
			<xsd:enumeration value = "GB"/>
			<xsd:enumeration value = "GD"/>
			<xsd:enumeration value = "GE"/>
			<xsd:enumeration value = "GF"/>
			<xsd:enumeration value = "GH"/>
			<xsd:enumeration value = "GI"/>
			<xsd:enumeration value = "GL"/>
			<xsd:enumeration value = "GM"/>
			<xsd:enumeration value = "GN"/>
			<xsd:enumeration value = "GP"/>
			<xsd:enumeration value = "GQ"/>
			<xsd:enumeration value = "GR"/>
			<xsd:enumeration value = "GS"/>
			<xsd:enumeration value = "GT"/>
			<xsd:enumeration value = "GU"/>
			<xsd:enumeration value = "GW"/>
			<xsd:enumeration value = "GY"/>
			<xsd:enumeration value = "HK"/>
			<xsd:enumeration value = "HM"/>
			<xsd:enumeration value = "HN"/>
			<xsd:enumeration value = "HR"/>
			<xsd:enumeration value = "HT"/>
			<xsd:enumeration value = "HU"/>
			<xsd:enumeration value = "ID"/>
			<xsd:enumeration value = "IE"/>
			<xsd:enumeration value = "IL"/>
			<xsd:enumeration value = "IN"/>
			<xsd:enumeration value = "IO"/>
			<xsd:enumeration value = "IQ"/>
			<xsd:enumeration value = "IR"/>
			<xsd:enumeration value = "IS"/>
			<xsd:enumeration value = "IT"/>
			<xsd:enumeration value = "JM"/>
			<xsd:enumeration value = "JO"/>
			<xsd:enumeration value = "JP"/>
			<xsd:enumeration value = "KE"/>
			<xsd:enumeration value = "KG"/>
			<xsd:enumeration value = "KH"/>
			<xsd:enumeration value = "KI"/>
			<xsd:enumeration value = "KM"/>
			<xsd:enumeration value = "KN"/>
			<xsd:enumeration value = "KP"/>
			<xsd:enumeration value = "KR"/>
			<xsd:enumeration value = "KW"/>
			<xsd:enumeration value = "KY"/>
			<xsd:enumeration value = "KZ"/>
			<xsd:enumeration value = "LA"/>
			<xsd:enumeration value = "LB"/>
			<xsd:enumeration value = "LC"/>
			<xsd:enumeration value = "LI"/>
			<xsd:enumeration value = "LK"/>
			<xsd:enumeration value = "LR"/>
			<xsd:enumeration value = "LS"/>
			<xsd:enumeration value = "LT"/>
			<xsd:enumeration value = "LU"/>
			<xsd:enumeration value = "LV"/>
			<xsd:enumeration value = "LY"/>
			<xsd:enumeration value = "MA"/>
			<xsd:enumeration value = "MC"/>
			<xsd:enumeration value = "MD"/>
			<xsd:enumeration value = "MG"/>
			<xsd:enumeration value = "MH"/>
			<xsd:enumeration value = "MK"/>
			<xsd:enumeration value = "ML"/>
			<xsd:enumeration value = "MM"/>
			<xsd:enumeration value = "MN"/>
			<xsd:enumeration value = "MO"/>
			<xsd:enumeration value = "MP"/>
			<xsd:enumeration value = "MQ"/>
			<xsd:enumeration value = "MR"/>
			<xsd:enumeration value = "MS"/>
			<xsd:enumeration value = "MT"/>
			<xsd:enumeration value = "MU"/>
			<xsd:enumeration value = "MV"/>
			<xsd:enumeration value = "MW"/>
			<xsd:enumeration value = "MX"/>
			<xsd:enumeration value = "MY"/>
			<xsd:enumeration value = "MZ"/>
			<xsd:enumeration value = "NA"/>
			<xsd:enumeration value = "NC"/>
			<xsd:enumeration value = "NE"/>
			<xsd:enumeration value = "NF"/>
			<xsd:enumeration value = "NG"/>
			<xsd:enumeration value = "NI"/>
			<xsd:enumeration value = "NL"/>
			<xsd:enumeration value = "NO"/>
			<xsd:enumeration value = "NP"/>
			<xsd:enumeration value = "NR"/>
			<xsd:enumeration value = "NU"/>
			<xsd:enumeration value = "NZ"/>
			<xsd:enumeration value = "OM"/>
			<xsd:enumeration value = "PA"/>
			<xsd:enumeration value = "PE"/>
			<xsd:enumeration value = "PF"/>
			<xsd:enumeration value = "PG"/>
			<xsd:enumeration value = "PH"/>
			<xsd:enumeration value = "PK"/>
			<xsd:enumeration value = "PL"/>
			<xsd:enumeration value = "PM"/>
			<xsd:enumeration value = "PN"/>
			<xsd:enumeration value = "PR"/>
			<xsd:enumeration value = "PT"/>
			<xsd:enumeration value = "PW"/>
			<xsd:enumeration value = "PY"/>
			<xsd:enumeration value = "QA"/>
			<xsd:enumeration value = "RE"/>
			<xsd:enumeration value = "RO"/>
			<xsd:enumeration value = "RU"/>
			<xsd:enumeration value = "RW"/>
			<xsd:enumeration value = "SA"/>
			<xsd:enumeration value = "SB"/>
			<xsd:enumeration value = "SC"/>
			<xsd:enumeration value = "SD"/>
			<xsd:enumeration value = "SE"/>
			<xsd:enumeration value = "SG"/>
			<xsd:enumeration value = "SH"/>
			<xsd:enumeration value = "SI"/>
			<xsd:enumeration value = "SJ"/>
			<xsd:enumeration value = "SK"/>
			<xsd:enumeration value = "SL"/>
			<xsd:enumeration value = "SM"/>
			<xsd:enumeration value = "SN"/>
			<xsd:enumeration value = "SO"/>
			<xsd:enumeration value = "SR"/>
			<xsd:enumeration value = "ST"/>
			<xsd:enumeration value = "SV"/>
			<xsd:enumeration value = "SY"/>
			<xsd:enumeration value = "SZ"/>
			<xsd:enumeration value = "TC"/>
			<xsd:enumeration value = "TD"/>
			<xsd:enumeration value = "TF"/>
			<xsd:enumeration value = "TG"/>
			<xsd:enumeration value = "TH"/>
			<xsd:enumeration value = "TJ"/>
			<xsd:enumeration value = "TK"/>
			<xsd:enumeration value = "TM"/>
			<xsd:enumeration value = "TN"/>
			<xsd:enumeration value = "TO"/>
			<xsd:enumeration value = "TP"/>
			<xsd:enumeration value = "TR"/>
			<xsd:enumeration value = "TT"/>
			<xsd:enumeration value = "TV"/>
			<xsd:enumeration value = "TW"/>
			<xsd:enumeration value = "TZ"/>
			<xsd:enumeration value = "UA"/>
			<xsd:enumeration value = "UG"/>
			<xsd:enumeration value = "UM"/>
			<xsd:enumeration value = "US"/>
			<xsd:enumeration value = "UY"/>
			<xsd:enumeration value = "UZ"/>
			<xsd:enumeration value = "VA"/>
			<xsd:enumeration value = "VC"/>
			<xsd:enumeration value = "VE"/>
			<xsd:enumeration value = "VG"/>
			<xsd:enumeration value = "VI"/>
			<xsd:enumeration value = "VN"/>
			<xsd:enumeration value = "VU"/>
			<xsd:enumeration value = "WF"/>
			<xsd:enumeration value = "WS"/>
			<xsd:enumeration value = "YE"/>
			<xsd:enumeration value = "YT"/>
			<xsd:enumeration value = "YU"/>
			<xsd:enumeration value = "ZA"/>
			<xsd:enumeration value = "ZM"/>
			<xsd:enumeration value = "ZR"/>
			<xsd:enumeration value = "ZW"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "layerFunctionType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "BOARDOUTLINE"/>
			<xsd:enumeration value = "COATINGCOND"/>
			<xsd:enumeration value = "COATINGNONCOND"/>
			<xsd:enumeration value = "DIELBASE"/>
			<xsd:enumeration value = "DIELCORE"/>
			<xsd:enumeration value = "DIELPREG"/>
			<xsd:enumeration value = "DIELADHV"/>
			<xsd:enumeration value = "COMPONENT"/>
			<xsd:enumeration value = "COURTYARD"/>
			<xsd:enumeration value = "SOLDERBUMP"/>
			<xsd:enumeration value = "PASTEMASK"/>
			<xsd:enumeration value = "HOLEFILL"/>
			<xsd:enumeration value = "SIGNAL"/>
			<xsd:enumeration value = "POWER_GROUND"/>
			<xsd:enumeration value = "MIXED"/>
			<xsd:enumeration value = "RESISTIVE"/>
			<xsd:enumeration value = "CAPACITIVE"/>
			<xsd:enumeration value = "SILKSCREEN"/>
			<xsd:enumeration value = "SOLDERPASTE"/>
			<xsd:enumeration value = "SOLDERMASK"/>
			<xsd:enumeration value = "DRILL"/>
			<xsd:enumeration value = "GLUE"/>
			<xsd:enumeration value = "ROUT"/>
			<xsd:enumeration value = "LEGEND"/>
			<xsd:enumeration value = "GRAPHIC"/>
			<xsd:enumeration value = "PROBE"/>
			<xsd:enumeration value = "PIN"/>
			<xsd:enumeration value = "REWORK"/>
			<xsd:enumeration value = "DOCUMENT"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "lineEndType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "NONE"/>
			<xsd:enumeration value = "ROUND"/>
			<xsd:enumeration value = "SQUARE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "modeType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "DESIGN"/>
			<xsd:enumeration value = "FABRICATION"/>
			<xsd:enumeration value = "ASSEMBLY"/>
			<xsd:enumeration value = "TEST"/>
			<xsd:enumeration value = "FULL"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "modRefType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "FULL"/>
			<xsd:enumeration value = "ASSEMBLY"/>
			<xsd:enumeration value = "FABRICATION"/>
			<xsd:enumeration value = "TEST"/>
			<xsd:enumeration value = "DESIGN"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "mountType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "SMT"/>
			<xsd:enumeration value = "THMT"/>
			<xsd:enumeration value = "OTHER"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "netClassType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "CLK"/>
			<xsd:enumeration value = "FIXED"/>
			<xsd:enumeration value = "GROUND"/>
			<xsd:enumeration value = "SIGNAL"/>
			<xsd:enumeration value = "POWER"/>
			<xsd:enumeration value = "UNUSED"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "netPointType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "END"/>
			<xsd:enumeration value = "MIDDLE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "nonNegativeDoubleType">
		<xsd:restriction base = "xsd:double">
			<xsd:minInclusive value = "0.0"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "optionAttributeName">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "drill"/>
			<xsd:enumeration value = "via_type"/>
			<xsd:enumeration value = "comp"/>
			<xsd:enumeration value = "drill_stage"/>
			<xsd:enumeration value = "drill_sr_zero"/>
			<xsd:enumeration value = "pad_usage"/>
			<xsd:enumeration value = "primary_side"/>
			<xsd:enumeration value = "out_angle"/>
			<xsd:enumeration value = "out_polarity"/>
			<xsd:enumeration value = "layer_hdi_type"/>
			<xsd:enumeration value = "fs_direction_top"/>
			<xsd:enumeration value = "fs_direction_bottom"/>
			<xsd:enumeration value = "smt_direction_top"/>
			<xsd:enumeration value = "smt_direction_bottom"/>
			<xsd:enumeration value = "viacap_layer"/>
			<xsd:enumeration value = "wheel_type"/>
			<xsd:enumeration value = "comp_type"/>
			<xsd:enumeration value = "comp_type2"/>
			<xsd:enumeration value = "comp_mount_type"/>
			<xsd:enumeration value = "comp_polarity"/>
			<xsd:enumeration value = "otherside_keepout"/>
			<xsd:enumeration value = "spo_w_mode"/>
			<xsd:enumeration value = "spo_h_mode"/>
			<xsd:enumeration value = "spo_s_mode"/>
			<xsd:enumeration value = "spo_p_mode"/>
			<xsd:enumeration value = "drc_assembly_lyrs"/>
			<xsd:enumeration value = "sip"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "optionValue">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "plated"/>
			<xsd:enumeration value = "non_plated"/>
			<xsd:enumeration value = "via"/>
			<xsd:enumeration value = "drilled"/>
			<xsd:enumeration value = "laser"/>
			<xsd:enumeration value = "photo"/>
			<xsd:enumeration value = "none"/>
			<xsd:enumeration value = "right"/>
			<xsd:enumeration value = "left"/>
			<xsd:enumeration value = "1"/>
			<xsd:enumeration value = "2"/>
			<xsd:enumeration value = "3"/>
			<xsd:enumeration value = "toeprint"/>
			<xsd:enumeration value = "g_fiducial"/>
			<xsd:enumeration value = "l_fiducial"/>
			<xsd:enumeration value = "tooling_hole"/>
			<xsd:enumeration value = "Top"/>
			<xsd:enumeration value = "Bottom"/>
			<xsd:enumeration value = "0.0"/>
			<xsd:enumeration value = "90.0"/>
			<xsd:enumeration value = "180.0"/>
			<xsd:enumeration value = "270.0"/>
			<xsd:enumeration value = "Positive"/>
			<xsd:enumeration value = "Negative"/>
			<xsd:enumeration value = "Buildup"/>
			<xsd:enumeration value = "Core"/>
			<xsd:enumeration value = "Left2Right"/>
			<xsd:enumeration value = "Top2Bottom"/>
			<xsd:enumeration value = "Right2Left"/>
			<xsd:enumeration value = "Bottom2Top"/>
			<xsd:enumeration value = "Both"/>
			<xsd:enumeration value = "None"/>
			<xsd:enumeration value = "Gerber"/>
			<xsd:enumeration value = "Tools"/>
			<xsd:enumeration value = "axial"/>
			<xsd:enumeration value = "bga"/>
			<xsd:enumeration value = "cbga"/>
			<xsd:enumeration value = "cob"/>
			<xsd:enumeration value = "dip"/>
			<xsd:enumeration value = "discrete"/>
			<xsd:enumeration value = "discrete402"/>
			<xsd:enumeration value = "discrete603"/>
			<xsd:enumeration value = "label"/>
			<xsd:enumeration value = "pga"/>
			<xsd:enumeration value = "pihconn"/>
			<xsd:enumeration value = "pihmisc"/>
			<xsd:enumeration value = "plcc"/>
			<xsd:enumeration value = "pqfp"/>
			<xsd:enumeration value = "printed"/>
			<xsd:enumeration value = "qfp"/>
			<xsd:enumeration value = "radial"/>
			<xsd:enumeration value = "sip"/>
			<xsd:enumeration value = "smtconn"/>
			<xsd:enumeration value = "smtmisc"/>
			<xsd:enumeration value = "socket"/>
			<xsd:enumeration value = "soic"/>
			<xsd:enumeration value = "soj"/>
			<xsd:enumeration value = "sop"/>
			<xsd:enumeration value = "sot"/>
			<xsd:enumeration value = "tab"/>
			<xsd:enumeration value = "tqfp"/>
			<xsd:enumeration value = "tsoic"/>
			<xsd:enumeration value = "tsop"/>
			<xsd:enumeration value = "axial-large"/>
			<xsd:enumeration value = "csp"/>
			<xsd:enumeration value = "dip300"/>
			<xsd:enumeration value = "dip600"/>
			<xsd:enumeration value = "discrete"/>
			<xsd:enumeration value = "discrete201"/>
			<xsd:enumeration value = "electro-mech"/>
			<xsd:enumeration value = "flipchip"/>
			<xsd:enumeration value = "lcc"/>
			<xsd:enumeration value = "lqfp"/>
			<xsd:enumeration value = "pfconn"/>
			<xsd:enumeration value = "pga"/>
			<xsd:enumeration value = "pihconn-inline"/>
			<xsd:enumeration value = "pihconn-rt-angle"/>
			<xsd:enumeration value = "pih-polar"/>
			<xsd:enumeration value = "radial-tall"/>
			<xsd:enumeration value = "smtelect-mech"/>
			<xsd:enumeration value = "smtmixedconn"/>
			<xsd:enumeration value = "smtpolar"/>
			<xsd:enumeration value = "solderable-mech"/>
			<xsd:enumeration value = "sop-ssop"/>
			<xsd:enumeration value = "tsop-tssop"/>
			<xsd:enumeration value = "reserved47"/>
			<xsd:enumeration value = "reserved48"/>
			<xsd:enumeration value = "reserved49"/>
			<xsd:enumeration value = "reserved50"/>
			<xsd:enumeration value = "reserved51"/>
			<xsd:enumeration value = "reserved52"/>
			<xsd:enumeration value = "reserved53"/>
			<xsd:enumeration value = "reserved54"/>
			<xsd:enumeration value = "reserved55"/>
			<xsd:enumeration value = "reserved56"/>
			<xsd:enumeration value = "reserved57"/>
			<xsd:enumeration value = "reserved58"/>
			<xsd:enumeration value = "reserved59"/>
			<xsd:enumeration value = "reserved60"/>
			<xsd:enumeration value = "reserved61"/>
			<xsd:enumeration value = "reserved62"/>
			<xsd:enumeration value = "reserved63"/>
			<xsd:enumeration value = "reserved64"/>
			<xsd:enumeration value = "reserved65"/>
			<xsd:enumeration value = "reserved66"/>
			<xsd:enumeration value = "reserved67"/>
			<xsd:enumeration value = "reserved68"/>
			<xsd:enumeration value = "reserved69"/>
			<xsd:enumeration value = "reserved70"/>
			<xsd:enumeration value = "reserved71"/>
			<xsd:enumeration value = "reserved72"/>
			<xsd:enumeration value = "reserved73"/>
			<xsd:enumeration value = "reserved74"/>
			<xsd:enumeration value = "reserved75"/>
			<xsd:enumeration value = "reserved76"/>
			<xsd:enumeration value = "reserved77"/>
			<xsd:enumeration value = "reserved78"/>
			<xsd:enumeration value = "reserved79"/>
			<xsd:enumeration value = "reserved80"/>
			<xsd:enumeration value = "reserved81"/>
			<xsd:enumeration value = "reserved82"/>
			<xsd:enumeration value = "reserved83"/>
			<xsd:enumeration value = "reserved84"/>
			<xsd:enumeration value = "reserved85"/>
			<xsd:enumeration value = "reserved86"/>
			<xsd:enumeration value = "reserved87"/>
			<xsd:enumeration value = "reserved88"/>
			<xsd:enumeration value = "reserved89"/>
			<xsd:enumeration value = "reserved90"/>
			<xsd:enumeration value = "reserved91"/>
			<xsd:enumeration value = "reserved92"/>
			<xsd:enumeration value = "reserved93"/>
			<xsd:enumeration value = "reserved94"/>
			<xsd:enumeration value = "reserved95"/>
			<xsd:enumeration value = "reserved96"/>
			<xsd:enumeration value = "reserved97"/>
			<xsd:enumeration value = "reserved98"/>
			<xsd:enumeration value = "reserved99"/>
			<xsd:enumeration value = "reserved100"/>
			<xsd:enumeration value = "Other"/>
			<xsd:enumeration value = "SMT"/>
			<xsd:enumeration value = "THMT"/>
			<xsd:enumeration value = "PRESSFIT"/>
			<xsd:enumeration value = "polarized"/>
			<xsd:enumeration value = "non_polarized"/>
			<xsd:enumeration value = "full_area"/>
			<xsd:enumeration value = "pins_only"/>
			<xsd:enumeration value = "Distance"/>
			<xsd:enumeration value = "Factor"/>
			<xsd:enumeration value = "Value"/>
			<xsd:enumeration value = "Area"/>
			<xsd:enumeration value = "detected"/>
			<xsd:enumeration value = "repaired"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "packageTypeType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "AXIAL_LEADED"/>
			<xsd:enumeration value = "BARE_DIE"/>
			<xsd:enumeration value = "CERAMIC_BGA"/>
			<xsd:enumeration value = "CERAMIC_DIP"/>
			<xsd:enumeration value = "CERAMIC_FLATPACK"/>
			<xsd:enumeration value = "CERAMIC_QUAD_FLATPACK"/>
			<xsd:enumeration value = "CERAMIC_SIP"/>
			<xsd:enumeration value = "CHIP"/>
			<xsd:enumeration value = "CHIP_SCALE"/>
			<xsd:enumeration value = "CHOKE_SWITCH_SM"/>
			<xsd:enumeration value = "COIL"/>
			<xsd:enumeration value = "CONNECTOR_SM"/>
			<xsd:enumeration value = "CONNECTOR_TH"/>
			<xsd:enumeration value = "EMBEDDED"/>
			<xsd:enumeration value = "FLIPCHIP"/>
			<xsd:enumeration value = "HERMETIC_HYBRED"/>
			<xsd:enumeration value = "LEADLESS_CERAMIC_CHIP_CARRIER"/>
			<xsd:enumeration value = "MCM"/>
			<xsd:enumeration value = "MELF"/>
			<xsd:enumeration value = "MINI_BGA"/>
			<xsd:enumeration value = "MOLDED"/>
			<xsd:enumeration value = "NETWORK"/>
			<xsd:enumeration value = "PGA"/>
			<xsd:enumeration value = "PLASTIC_BGA"/>
			<xsd:enumeration value = "PLASTIC_CHIP_CARRIER"/>
			<xsd:enumeration value = "PLASTIC_DIP"/>
			<xsd:enumeration value = "PLASTIC_SIP"/>
			<xsd:enumeration value = "POWER_TRANSISTOR"/>
			<xsd:enumeration value = "RADIAL_LEADED"/>
			<xsd:enumeration value = "RECTANGULAR_QUAD_FLATPACK"/>
			<xsd:enumeration value = "RELAY_SM"/>
			<xsd:enumeration value = "RELAY_TH"/>
			<xsd:enumeration value = "SOD123"/>
			<xsd:enumeration value = "SOIC"/>
			<xsd:enumeration value = "SOJ"/>
			<xsd:enumeration value = "SOPIC"/>
			<xsd:enumeration value = "SOT143"/>
			<xsd:enumeration value = "SOT23"/>
			<xsd:enumeration value = "SOT52"/>
			<xsd:enumeration value = "SOT89"/>
			<xsd:enumeration value = "SQUARE_QUAD_FLATPACK"/>
			<xsd:enumeration value = "SSOIC"/>
			<xsd:enumeration value = "SWITCH_TH"/>
			<xsd:enumeration value = "TANTALUM"/>
			<xsd:enumeration value = "TO_TYPE"/>
			<xsd:enumeration value = "TRANSFORMER"/>
			<xsd:enumeration value = "TRIMPOT_SM"/>
			<xsd:enumeration value = "TRIMPOT_TH"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "padUsageType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "TOE"/>
			<xsd:enumeration value = "VIA"/>
			<xsd:enumeration value = "GLOBAL_FIDUCIAL"/>
			<xsd:enumeration value = "LOCAL_FIDUCIAL"/>
			<xsd:enumeration value = "TOOLING_HOLE"/>
			<xsd:enumeration value = "NONE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "pinElectricalType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "ELECTRICAL"/>
			<xsd:enumeration value = "MECHANICAL"/>
			<xsd:enumeration value = "UNDEFINED"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "pinMountType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "SURFACE_MOUNT_PIN"/>
			<xsd:enumeration value = "SURFACE_MOUNT_PAD"/>
			<xsd:enumeration value = "THROUGH_HOLE_PIN"/>
			<xsd:enumeration value = "THROUGH_HOLE_HOLE"/>
			<xsd:enumeration value = "PRESSFIT"/>
			<xsd:enumeration value = "NONBOARD"/>
			<xsd:enumeration value = "HOLE"/>
			<xsd:enumeration value = "UNDEFINED"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "platingStatusType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "PLATED"/>
			<xsd:enumeration value = "NONPLATED"/>
			<xsd:enumeration value = "VIA"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "polarityType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "POSITIVE"/>
			<xsd:enumeration value = "NEGATIVE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "qualifiedNameType">
		<xsd:restriction base = "xsd:string">
			<xsd:pattern value = "([a-zA-Z][a-zA-Z0-9_\-]*)(:[a-zA-Z][a-zA-Z0-9_\-]*)*"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "roleNameType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "SENDER"/>
			<xsd:enumeration value = "OWNER"/>
			<xsd:enumeration value = "RECEIVER"/>
			<xsd:enumeration value = "DESIGNER"/>
			<xsd:enumeration value = "ENGINEER"/>
			<xsd:enumeration value = "BUYER"/>
			<xsd:enumeration value = "CUSTOMERSERVICE"/>
			<xsd:enumeration value = "DELIVERTO"/>
			<xsd:enumeration value = "BILLTO"/>
			<xsd:enumeration value = "OTHER"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "scaleType">
		<xsd:restriction base = "xsd:double">
			<xsd:minExclusive value = "0.0"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "shortNameType">
		<xsd:restriction base = "xsd:string">
			<xsd:pattern value = "[/a-zA-Z][a-zA-Z0-9/_\-]*"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "sideType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "TOP"/>
			<xsd:enumeration value = "BOTTOM"/>
			<xsd:enumeration value = "INNER"/>
			<xsd:enumeration value = "BOTH"/>
			<xsd:enumeration value = "NONE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "spokeCountType">
		<xsd:restriction base = "xsd:integer">
			<xsd:maxInclusive value = "255"/>
			<xsd:minInclusive value = "1"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "stackImpedanceType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "RAMBUS"/>
			<xsd:enumeration value = "DIFFERENTIAL"/>
			<xsd:enumeration value = "BROADSIDE_DIFFERENTIAL"/>
			<xsd:enumeration value = "EMBEDDED_MICROSTRIP_EDGE"/>
			<xsd:enumeration value = "EDGE_COUPLED_MICROSTRIP"/>
			<xsd:enumeration value = "EDGE_COUPLED_STRIPLINE"/>
			<xsd:enumeration value = "DECOUPLED_EMBEDDED_MICROSTRIP"/>
			<xsd:enumeration value = "DECOUPLED_EMBEDDED_STRIPLINE"/>
			<xsd:enumeration value = "COPLANAR_WAVEGUIDE_MICROSTRIP"/>
			<xsd:enumeration value = "COPLANAR_WAVEGUIDE_STRIPLINE"/>
			<xsd:enumeration value = "EDGE_COUPLED_COPLANAR_WAVEGUIDE_MICROSTRIP"/>
			<xsd:enumeration value = "EDGE_COUPLED_COPLANAR_WAVEGUIDE_STRIPLINE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "textAttributeName">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "bit"/>
			<xsd:enumeration value = "geometry"/>
			<xsd:enumeration value = "fiducial_rdlist"/>
			<xsd:enumeration value = "area_name"/>
			<xsd:enumeration value = "source_llayer"/>
			<xsd:enumeration value = "fiducial_name"/>
			<xsd:enumeration value = "string"/>
			<xsd:enumeration value = "color"/>
			<xsd:enumeration value = "customer"/>
			<xsd:enumeration value = "comment"/>
			<xsd:enumeration value = "technology"/>
			<xsd:enumeration value = "global_camtek_aoiset"/>
			<xsd:enumeration value = "drc_route_keepin_lyr"/>
			<xsd:enumeration value = "drc_comp_keepin_lyr"/>
			<xsd:enumeration value = "drc_tp_keepin_lyr"/>
			<xsd:enumeration value = "drc_route_keepout_lyr"/>
			<xsd:enumeration value = "drc_via_keepout_lyr"/>
			<xsd:enumeration value = "drc_trace_keepout_lyr"/>
			<xsd:enumeration value = "drc_plane_keepout_lyr"/>
			<xsd:enumeration value = "drc_pad_keepout_lyr"/>
			<xsd:enumeration value = "drc_comp_keepout_lyr"/>
			<xsd:enumeration value = "drc_comp_height_lyr"/>
			<xsd:enumeration value = "drc_tp_keepout_lyr"/>
			<xsd:enumeration value = "inp_file"/>
			<xsd:enumeration value = "eda_layers"/>
			<xsd:enumeration value = "out_name"/>
			<xsd:enumeration value = "assembly_proc_top"/>
			<xsd:enumeration value = "assembly_proc_bottom"/>
			<xsd:enumeration value = "all_eda_layers"/>
			<xsd:enumeration value = "fab_drc"/>
			<xsd:enumeration value = "hdi_drc"/>
			<xsd:enumeration value = "hdi_drc"/>
			<xsd:enumeration value = "spo_shape"/>
			<xsd:enumeration value = "user_bom_rev"/>
			<xsd:enumeration value = "machine_pkg"/>
			<xsd:enumeration value = "hp3070_device"/>
			<xsd:enumeration value = "hp3070_value"/>
			<xsd:enumeration value = "hp3070_type"/>
			<xsd:enumeration value = "hp3070_fail_msg"/>
			<xsd:enumeration value = "hp3070_common_pin"/>
			<xsd:enumeration value = "hp3070_contact_pin"/>
			<xsd:enumeration value = "hp3070_contact_pin"/>
			<xsd:enumeration value = "hp3070_comment"/>
			<xsd:enumeration value = "gencad_device_type"/>
			<xsd:enumeration value = "gencad_device_style"/>
			<xsd:enumeration value = "gencad_device_value"/>
			<xsd:enumeration value = "drc_ref_des"/>
			<xsd:enumeration value = "drc_etch_lyrs"/>
			<xsd:enumeration value = "drc_etch_lyrs_bit"/>
			<xsd:enumeration value = "cad_part_override"/>
			<xsd:enumeration value = "diff_pair"/>
			<xsd:enumeration value = "net_type"/>
			<xsd:enumeration value = "electrical_class"/>
			<xsd:enumeration value = "eclass_individual_parallel_min_jog_list"/>
			<xsd:enumeration value = "eclass_individual_parallel_max_length_list"/>
			<xsd:enumeration value = "eclass_individual_parallel_dist_list"/>
			<xsd:enumeration value = "eclass_accumulative_parallel_max_length_list"/>
			<xsd:enumeration value = "eclass_accumulative_parallel_dist_list"/>
			<xsd:enumeration value = "station"/>
			<xsd:enumeration value = "variant_list"/>
			<xsd:enumeration value = "comp_variant_list"/>
			<xsd:enumeration value = "current_variant"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "thermalShapeType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "ROUND"/>
			<xsd:enumeration value = "SQUARE"/>
			<xsd:enumeration value = "HEXAGON"/>
			<xsd:enumeration value = "OCTAGON"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "unitModeType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "DISTANCE"/>
			<xsd:enumeration value = "AREA"/>
			<xsd:enumeration value = "RESISTANCE"/>
			<xsd:enumeration value = "CAPACITANCE"/>
			<xsd:enumeration value = "IMPEDANCE"/>
			<xsd:enumeration value = "PERCENTAGE"/>
			<xsd:enumeration value = "SIZE"/>
			<xsd:enumeration value = "NONE"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "unitsType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "MILLIMETER"/>
			<xsd:enumeration value = "MICRON"/>
			<xsd:enumeration value = "INCH"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "unsignedByte">
		<xsd:restriction base = "xsd:nonNegativeInteger">
			<xsd:maxInclusive value = "255"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name = "urn">
		<xsd:restriction base = "xsd:anyURI"/>
	</xsd:simpleType>
	<xsd:simpleType name = "whereMeasuredType">
		<xsd:restriction base = "xsd:string">
			<xsd:enumeration value = "LAMINATE"/>
			<xsd:enumeration value = "METAL"/>
			<xsd:enumeration value = "MASK"/>
			<xsd:enumeration value = "OTHER"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name = "Approval" type = "ApprovalType"/>
	<xsd:complexType name = "ApprovalType">
		<xsd:attribute name = "datetime" use = "required" type = "xsd:dateTime"/>
		<xsd:attribute name = "personRef" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "Arc" type = "ArcType" substitutionGroup = "Simple"/>
	<xsd:complexType name = "ArcType">
		<xsd:sequence>
			<xsd:element ref = "LineDescGroup"/>
		</xsd:sequence>
		<xsd:attribute name = "startX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "startY" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "endX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "endY" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "centerX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "centerY" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "clockwise" use = "required" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "AssemblyDrawing" type = "AssemblyDrawingType"/>
	<xsd:complexType name = "AssemblyDrawingType">
		<xsd:sequence>
			<xsd:element ref = "Outline"/>
			<xsd:element ref = "Text" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Target" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Attribute" abstract = "true"/>
	<xsd:element name = "Avl" type = "AvlType"/>
	<xsd:element name = "AvlHeader" type = "AvlHeaderType"/>
	<xsd:complexType name = "AvlHeaderType">
		<xsd:attribute name = "title" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "source" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "author" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "datetime" use = "required" type = "xsd:dateTime"/>
		<xsd:attribute name = "version" use = "required" type = "xsd:positiveInteger"/>
		<xsd:attribute name = "comment" type = "xsd:string"/>
		<xsd:attribute name = "modRef" type = "modRefType"/>
	</xsd:complexType>
	<xsd:element name = "AvlItem" type = "AvlItemType"/>
	<xsd:complexType name = "AvlItemType">
		<xsd:sequence>
			<xsd:element ref = "AvlVmpn" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "OEMDesignNumber" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "AvlMpn" type = "AvlMpnType"/>
	<xsd:complexType name = "AvlMpnType">
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "rank" type = "xsd:nonNegativeInteger"/>
		<xsd:attribute name = "cost" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "moistureSensitivity" type = "floorLifeType"/>
		<xsd:attribute name = "availability" type = "xsd:boolean"/>
		<xsd:attribute name = "other" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "AvlRef" type = "qualifiedNameType"/>
	<xsd:complexType name = "AvlType">
		<xsd:sequence>
			<xsd:element ref = "AvlHeader"/>
			<xsd:element ref = "AvlItem" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "AvlVendor" type = "AvlVendorType"/>
	<xsd:complexType name = "AvlVendorType">
		<xsd:attribute name = "enterpriseRef" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "AvlVmpn" type = "AvlVmpnType"/>
	<xsd:complexType name = "AvlVmpnType">
		<xsd:sequence>
			<xsd:element ref = "AvlMpn"/>
			<xsd:element ref = "AvlVendor"/>
		</xsd:sequence>
		<xsd:attribute name = "evplVendor" type = "xsd:string"/>
		<xsd:attribute name = "evplMpn" type = "xsd:string"/>
		<xsd:attribute name = "qualified" use = "required" type = "xsd:boolean"/>
		<xsd:attribute name = "chosen" use = "required" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "BadBoardMark" type = "PadType" substitutionGroup = "Fiducial"/>
	<xsd:element name = "Bom" type = "BomType"/>
	<xsd:element name = "BomHeader" type = "BomHeaderType"/>
	<xsd:complexType name = "BomHeaderType">
		<xsd:attribute name = "assembly" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "revision" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "affecting" type = "xsd:boolean"/>
		<xsd:attribute name = "stepListRef" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "BomItem" type = "BomItemType"/>
	<xsd:complexType name = "BomItemType">
		<xsd:sequence>
			<xsd:element ref = "RefDes" maxOccurs = "unbounded"/>
			<xsd:element ref = "Characteristics"/>
		</xsd:sequence>
		<xsd:attribute name = "OEMDesignNumberRef" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "quantity" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "numberIO" use = "required" type = "xsd:nonNegativeInteger"/>
		<xsd:attribute name = "category" use = "required" type = "bomCategoryType"/>
		<xsd:attribute name = "internalPartNumber" type = "xsd:string"/>
		<xsd:attribute name = "description" type = "xsd:string"/>
		<xsd:attribute name = "packageRef" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "BomRef" type = "qualifiedNameType"/>
	<xsd:complexType name = "BomType">
		<xsd:sequence>
			<xsd:element ref = "BomHeader"/>
			<xsd:element ref = "BomItem" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "BooleanAttribute" type = "BooleanAttributeType" substitutionGroup = "Attribute"/>
	<xsd:complexType name = "BooleanAttributeType">
		<xsd:attribute name = "name" use = "required" type = "booleanAttributeName"/>
		<xsd:attribute name = "value" use = "required" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "BoundingBox" type = "BoundingBoxType"/>
	<xsd:complexType name = "BoundingBoxType">
		<xsd:attribute name = "lowerLeftX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "lowerLeftY" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "upperRightX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "upperRightY" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "Butterfly" type = "ButterflyType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "ButterflyType">
		<xsd:attribute name = "shape" use = "required" type = "butterflyShapeType"/>
		<xsd:attribute name = "diameter" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "side" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "CachedFirmware" type = "CachedFirmwareType" substitutionGroup = "FirmwareGroup"/>
	<xsd:complexType name = "CachedFirmwareType">
		<xsd:attribute name = "hexEncodedBinary" use = "required" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "CadData" type = "CadDataType"/>
	<xsd:complexType name = "CadDataType">
		<xsd:sequence>
			<xsd:element ref = "LayerDesc"/>
			<xsd:element ref = "StepList" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "CadHeader" type = "CadHeaderType"/>
	<xsd:complexType name = "CadHeaderType">
		<xsd:sequence>
			<xsd:element ref = "Spec" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "SurfaceFinish" minOccurs = "0"/>
			<xsd:element ref = "ChangeRec" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "units" use = "required" type = "unitsType"/>
	</xsd:complexType>
	<xsd:element name = "CadVmpn" type = "CadVmpnType"/>
	<xsd:complexType name = "CadVmpnType">
		<xsd:attribute name = "cadMpn" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "cadAvlVendor" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "cadVplMpn" type = "xsd:string"/>
		<xsd:attribute name = "cadVplVendor" type = "xsd:string"/>
		<xsd:attribute name = "qualify" type = "xsd:boolean"/>
		<xsd:attribute name = "chosen" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "Certification" type = "CertificationType"/>
	<xsd:complexType name = "CertificationType">
		<xsd:attribute name = "certificationStatus" use = "required" type = "certificationStatusType"/>
		<xsd:attribute name = "certificationCategory" type = "certificationCategoryType"/>
	</xsd:complexType>
	<xsd:element name = "ChangeRec" type = "ChangeRecType"/>
	<xsd:complexType name = "ChangeRecType">
		<xsd:sequence>
			<xsd:element ref = "Approval" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "datetime" use = "required" type = "xsd:dateTime"/>
		<xsd:attribute name = "personRef" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "application" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "change" use = "required" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Characteristics" type = "CharacteristicsType"/>
	<xsd:complexType name = "CharacteristicsType">
		<xsd:sequence>
			<xsd:element ref = "Measured" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Ranged" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Enumerated" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Textual" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "category" use = "required" type = "bomCategoryType"/>
	</xsd:complexType>
	<xsd:element name = "Circle" type = "CircleType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "CircleType">
		<xsd:attribute name = "diameter" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "Color" type = "ColorType" substitutionGroup = "ColorGroup"/>
	<xsd:element name = "ColorGroup" abstract = "true"/>
	<xsd:element name = "ColorRef" type = "ColorRefType" substitutionGroup = "ColorGroup"/>
	<xsd:complexType name = "ColorRefType">
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:complexType name = "ColorType">
		<xsd:attribute name = "r" use = "required" type = "unsignedByte"/>
		<xsd:attribute name = "g" use = "required" type = "unsignedByte"/>
		<xsd:attribute name = "b" use = "required" type = "unsignedByte"/>
	</xsd:complexType>
	<xsd:element name = "Component" type = "ComponentType"/>
	<xsd:complexType name = "ComponentType">
		<xsd:sequence>
			<xsd:element ref = "Attribute" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Xform" minOccurs = "0"/>
			<xsd:element ref = "Location"/>
		</xsd:sequence>
		<xsd:attribute name = "refDes" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "packageRef" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "part" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "layerRef" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "mountType" use = "required" type = "mountType"/>
		<xsd:attribute name = "weight" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "height" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "standoff" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "Content" type = "ContentType"/>
	<xsd:complexType name = "ContentType">
		<xsd:sequence>
			<xsd:element ref = "FunctionMode"/>
			<xsd:element ref = "StepListRef" maxOccurs = "unbounded"/>
			<xsd:element ref = "LayerDescRef" maxOccurs = "unbounded"/>
			<xsd:element ref = "BomRef" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "AvlRef" minOccurs = "0"/>
			<xsd:element ref = "DictionaryStandard" minOccurs = "0"/>
			<xsd:element ref = "DictionaryUser" minOccurs = "0"/>
			<xsd:element ref = "DictionaryFont" minOccurs = "0"/>
			<xsd:element ref = "DictionaryLineDesc" minOccurs = "0"/>
			<xsd:element ref = "DictionaryColor" minOccurs = "0"/>
			<xsd:element ref = "DictionaryFirmware" minOccurs = "0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Contour" type = "ContourType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "ContourType">
		<xsd:sequence>
			<xsd:element ref = "Polygon"/>
			<xsd:element ref = "Cutout" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Cutout" type = "PolygonType"/>
	<xsd:element name = "DfxMeasurement" type = "DfxMeasurementType"/>
	<xsd:element name = "DfxMeasurementList" type = "DfxMeasurementListType"/>
	<xsd:complexType name = "DfxMeasurementListType">
		<xsd:sequence>
			<xsd:element ref = "DfxMeasurement" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "category" use = "required" type = "dfxCategoryType"/>
		<xsd:attribute name = "criteria" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:complexType name = "DfxMeasurementType">
		<xsd:sequence>
			<xsd:element ref = "Simple" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "FeatureDescription" maxOccurs = "2"/>
		</xsd:sequence>
		<xsd:attribute name = "value" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "unitMode" use = "required" type = "unitModeType"/>
	</xsd:complexType>
	<xsd:element name = "Diamond" type = "DiamondType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "DiamondType">
		<xsd:attribute name = "width" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "height" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "DictionaryColor" type = "DictionaryColorType"/>
	<xsd:complexType name = "DictionaryColorType">
		<xsd:sequence>
			<xsd:element ref = "EntryColor" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "DictionaryFirmware" type = "DictionaryFirmwareType"/>
	<xsd:complexType name = "DictionaryFirmwareType">
		<xsd:sequence>
			<xsd:element ref = "EntryFirmware" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "DictionaryFont" type = "DictionaryFontType"/>
	<xsd:complexType name = "DictionaryFontType">
		<xsd:sequence>
			<xsd:element ref = "EntryFont" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "units" use = "required" type = "unitsType"/>
	</xsd:complexType>
	<xsd:element name = "DictionaryLineDesc" type = "DictionaryLineDescType"/>
	<xsd:complexType name = "DictionaryLineDescType">
		<xsd:sequence>
			<xsd:element ref = "EntryLineDesc" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "units" use = "required" type = "unitsType"/>
	</xsd:complexType>
	<xsd:element name = "DictionaryStandard" type = "DictionaryStandardType"/>
	<xsd:complexType name = "DictionaryStandardType">
		<xsd:sequence>
			<xsd:element ref = "EntryStandard" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "units" use = "required" type = "unitsType"/>
	</xsd:complexType>
	<xsd:element name = "DictionaryUser" type = "DictionaryUserType"/>
	<xsd:complexType name = "DictionaryUserType">
		<xsd:sequence>
			<xsd:element ref = "EntryUser" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "units" use = "required" type = "unitsType"/>
	</xsd:complexType>
	<xsd:element name = "Donut" type = "DonutType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "DonutType">
		<xsd:attribute name = "shape" use = "required" type = "donutShapeType"/>
		<xsd:attribute name = "outerDiameter" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "innerDiameter" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "DoubleAttribute" type = "DoubleAttributeType" substitutionGroup = "Attribute"/>
	<xsd:complexType name = "DoubleAttributeType">
		<xsd:attribute name = "name" use = "required" type = "doubleAttributeName"/>
		<xsd:attribute name = "value" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "DrillTool" type = "DrillToolType"/>
	<xsd:complexType name = "DrillToolType">
		<xsd:attribute name = "number" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "type" use = "required" type = "drillType"/>
		<xsd:attribute name = "tolPlus" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "tolMinus" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "bitUnit" type = "bitUnitType"/>
		<xsd:attribute name = "finishSize" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "drillSize" use = "required" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Ecad" type = "EcadType"/>
	<xsd:complexType name = "EcadType">
		<xsd:sequence>
			<xsd:element ref = "CadHeader"/>
			<xsd:element ref = "CadData"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "Ellipse" type = "EllipseType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "EllipseType">
		<xsd:attribute name = "width" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "height" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "Enterprise" type = "EnterpriseType"/>
	<xsd:complexType name = "EnterpriseType">
		<xsd:attribute name = "id" use = "required" type = "shortNameType"/>
		<xsd:attribute name = "name" type = "xsd:string"/>
		<xsd:attribute name = "code" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "codeType" type = "enterpriseCodeType"/>
		<xsd:attribute name = "address1" type = "xsd:string"/>
		<xsd:attribute name = "address2" type = "xsd:string"/>
		<xsd:attribute name = "city" type = "xsd:string"/>
		<xsd:attribute name = "stateProvince" type = "xsd:string"/>
		<xsd:attribute name = "country" type = "isoCodeType"/>
		<xsd:attribute name = "postalCode" type = "xsd:string"/>
		<xsd:attribute name = "phone" type = "xsd:string"/>
		<xsd:attribute name = "fax" type = "xsd:string"/>
		<xsd:attribute name = "email" type = "xsd:string"/>
		<xsd:attribute name = "url" type = "xsd:anyURI"/>
	</xsd:complexType>
	<xsd:element name = "EntryColor" type = "EntryColorType"/>
	<xsd:complexType name = "EntryColorType">
		<xsd:sequence>
			<xsd:element ref = "Color"/>
		</xsd:sequence>
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "EntryFirmware" type = "EntryFirmwareType"/>
	<xsd:complexType name = "EntryFirmwareType">
		<xsd:sequence>
			<xsd:element ref = "CachedFirmware"/>
		</xsd:sequence>
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "EntryFont" type = "EntryFontType"/>
	<xsd:complexType name = "EntryFontType">
		<xsd:sequence>
			<xsd:element ref = "FontDef"/>
		</xsd:sequence>
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "EntryLineDesc" type = "EntryLineDescType"/>
	<xsd:complexType name = "EntryLineDescType">
		<xsd:sequence>
			<xsd:element ref = "LineDesc"/>
		</xsd:sequence>
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "EntryStandard" type = "EntryStandardType"/>
	<xsd:complexType name = "EntryStandardType">
		<xsd:sequence>
			<xsd:element ref = "StandardPrimitive"/>
		</xsd:sequence>
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "EntryUser" type = "EntryUserType"/>
	<xsd:complexType name = "EntryUserType">
		<xsd:sequence>
			<xsd:element ref = "UserPrimitive"/>
		</xsd:sequence>
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "Enumerated" type = "EnumeratedType"/>
	<xsd:complexType name = "EnumeratedType">
		<xsd:attribute name = "definitionSource" type = "xsd:string"/>
		<xsd:attribute name = "enumeratedCharacteristicName" type = "xsd:string"/>
		<xsd:attribute name = "enumeratedCharacteristicValue" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Feature" abstract = "true"/>
	<xsd:element name = "FeatureDescription" type = "FeatureDescriptionType"/>
	<xsd:complexType name = "FeatureDescriptionType">
		<xsd:attribute name = "featureRef" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "layerRef" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "Features" type = "FeaturesType"/>
	<xsd:complexType name = "FeaturesType">
		<xsd:sequence>
			<xsd:element ref = "Xform" minOccurs = "0"/>
			<xsd:element ref = "Location" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Feature"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Fiducial" abstract = "true"/>
	<xsd:element name = "File" type = "FileType"/>
	<xsd:element name = "FileRevision" type = "FileRevisionType"/>
	<xsd:complexType name = "FileRevisionType">
		<xsd:sequence>
			<xsd:element ref = "SoftwarePackage"/>
		</xsd:sequence>
		<xsd:attribute name = "fileRevisionId" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "comment" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "label" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:complexType name = "FileType">
		<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "crc" use = "required" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:complexType name = "FinishType">
		<xsd:sequence>
			<xsd:element ref = "ColorGroup"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "material" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "thickness" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "id" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "FinishType" type = "FinishType"/>
	<xsd:element name = "Firmware" type = "FirmwareType"/>
	<xsd:element name = "FirmwareGroup" abstract = "true"/>
	<xsd:element name = "FirmwareRef" type = "FirmwareRefType" substitutionGroup = "FirmwareGroup"/>
	<xsd:complexType name = "FirmwareRefType">
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:complexType name = "FirmwareType">
		<xsd:sequence>
			<xsd:element ref = "File"/>
			<xsd:element ref = "FirmwareGroup"/>
		</xsd:sequence>
		<xsd:attribute name = "progName" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "progVersion" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "FontDef" abstract = "true"/>
	<xsd:element name = "FontDefEmbedded" type = "FontDefEmbeddedType" substitutionGroup = "FontDef"/>
	<xsd:complexType name = "FontDefEmbeddedType">
		<xsd:sequence>
			<xsd:element ref = "LineDescGroup"/>
			<xsd:element ref = "Glyph" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "FontDefExternal" type = "FontDefExternalType" substitutionGroup = "FontDef"/>
	<xsd:complexType name = "FontDefExternalType">
		<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "urn" use = "required" type = "urn"/>
	</xsd:complexType>
	<xsd:element name = "FontRef" type = "FontRefType"/>
	<xsd:complexType name = "FontRefType">
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "FunctionMode" type = "FunctionModeType"/>
	<xsd:complexType name = "FunctionModeType">
		<xsd:attribute name = "mode" use = "required" type = "modeType"/>
		<xsd:attribute name = "level" use = "required" type = "xsd:positiveInteger"/>
		<xsd:attribute name = "comment" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "GlobalFiducial" type = "PadType" substitutionGroup = "Fiducial"/>
	<xsd:element name = "Glyph" type = "GlyphType"/>
	<xsd:complexType name = "GlyphType">
		<xsd:sequence>
			<xsd:element ref = "Simple" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "charCode" use = "required" type = "xsd:hexBinary"/>
		<xsd:attribute name = "lowerLeftX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "lowerLeftY" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "upperRightX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "upperRightY" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "GoodPanelMark" type = "PadType" substitutionGroup = "Fiducial"/>
	<xsd:element name = "Hexagon" type = "HexagonType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "HexagonType">
		<xsd:attribute name = "length" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "HistoryRecord" type = "HistoryRecordType"/>
	<xsd:complexType name = "HistoryRecordType">
		<xsd:sequence>
			<xsd:element ref = "FileRevision"/>
			<xsd:element ref = "ChangeRec" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "number" use = "required" type = "historyNumberType"/>
		<xsd:attribute name = "origination" use = "required" type = "xsd:dateTime"/>
		<xsd:attribute name = "toolRef" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "lastChange" use = "required" type = "xsd:dateTime"/>
		<xsd:attribute name = "externalConfigurationEntryPoint" type = "xsd:anyURI"/>
	</xsd:complexType>
	<xsd:element name = "Hole" type = "HoleType"/>
	<xsd:complexType name = "HoleType">
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "diameter" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "platingStatus" use = "required" type = "platingStatusType"/>
		<xsd:attribute name = "plusTol" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "minusTol" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "x" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "y" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "IntegerAttribute" type = "IntegerAttributeType" substitutionGroup = "Attribute"/>
	<xsd:complexType name = "IntegerAttributeType">
		<xsd:attribute name = "name" use = "required" type = "integerAttributeName"/>
		<xsd:attribute name = "value" use = "required" type = "xsd:integer"/>
	</xsd:complexType>
	<xsd:element name = "IPC-2581" type = "IPC-2581Type"/>
	<xsd:complexType name = "IPC-2581Type">
		<xsd:sequence>
			<xsd:element ref = "Content"/>
			<xsd:element ref = "LogisticHeader"/>
			<xsd:element ref = "HistoryRecord"/>
			<xsd:element ref = "Bom" maxOccurs = "unbounded"/>
			<xsd:element ref = "Ecad"/>
			<xsd:element ref = "Avl"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "LandPattern" type = "LandPatternType"/>
	<xsd:complexType name = "LandPatternType">
		<xsd:sequence>
			<xsd:element ref = "Pad" maxOccurs = "unbounded"/>
			<xsd:element ref = "Target" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Layer" type = "LayerType"/>
	<xsd:element name = "LayerDesc" type = "LayerDescType"/>
	<xsd:element name = "LayerDescRef" type = "qualifiedNameType"/>
	<xsd:complexType name = "LayerDescType">
		<xsd:sequence>
			<xsd:element ref = "Layer" maxOccurs = "unbounded"/>
			<xsd:element ref = "Stackup" minOccurs = "0"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "LayerFeature" type = "LayerFeatureType"/>
	<xsd:complexType name = "LayerFeatureType">
		<xsd:sequence>
			<xsd:element ref = "Set" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "layerRef" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "LayerHole" type = "LayerHoleType"/>
	<xsd:complexType name = "LayerHoleType">
		<xsd:sequence>
			<xsd:element ref = "Span"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "diameter" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "platingStatus" use = "required" type = "platingStatusType"/>
		<xsd:attribute name = "plusTol" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "minusTol" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "x" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "y" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "LayerPad" type = "LayerPadType"/>
	<xsd:complexType name = "LayerPadType">
		<xsd:sequence>
			<xsd:element ref = "Xform" minOccurs = "0"/>
			<xsd:element ref = "Location"/>
			<xsd:element ref = "StandardShape"/>
		</xsd:sequence>
		<xsd:attribute name = "pin" type = "xsd:string"/>
		<xsd:attribute name = "layerRef" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "LayerRef" type = "xsd:string"/>
	<xsd:complexType name = "LayerType">
		<xsd:sequence>
			<xsd:element ref = "Span" minOccurs = "0"/>
			<xsd:element ref = "DrillTool" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "context" use = "required" type = "contextType"/>
		<xsd:attribute name = "layerFunction" use = "required" type = "layerFunctionType"/>
		<xsd:attribute name = "side" use = "required" type = "sideType"/>
		<xsd:attribute name = "polarity" use = "required" type = "polarityType"/>
	</xsd:complexType>
	<xsd:element name = "Line" type = "LineType" substitutionGroup = "Simple"/>
	<xsd:element name = "LineDesc" type = "LineDescType" substitutionGroup = "LineDescGroup"/>
	<xsd:element name = "LineDescGroup" abstract = "true"/>
	<xsd:element name = "LineDescRef" type = "LineDescRefType" substitutionGroup = "LineDescGroup"/>
	<xsd:complexType name = "LineDescRefType">
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:complexType name = "LineDescType">
		<xsd:attribute name = "lineEnd" use = "required" type = "lineEndType"/>
		<xsd:attribute name = "lineWidth" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:complexType name = "LineType">
		<xsd:sequence>
			<xsd:element ref = "LineDescGroup"/>
		</xsd:sequence>
		<xsd:attribute name = "startX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "startY" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "endX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "endY" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "LocalFiducial" type = "PadType" substitutionGroup = "Fiducial"/>
	<xsd:element name = "Location" type = "LocationType"/>
	<xsd:complexType name = "LocationType">
		<xsd:attribute name = "x" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "y" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "LogicalNet" type = "LogicalNetType"/>
	<xsd:element name = "LogicalNetPin" type = "LogicalNetPinType"/>
	<xsd:complexType name = "LogicalNetPinType">
		<xsd:attribute name = "componentRef" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "pin" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "title" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:complexType name = "LogicalNetType">
		<xsd:sequence>
			<xsd:element ref = "Attribute" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "LogicalNetPin" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "netClass" type = "netClassType"/>
	</xsd:complexType>
	<xsd:element name = "LogisticHeader" type = "LogisticHeaderType"/>
	<xsd:complexType name = "LogisticHeaderType">
		<xsd:sequence>
			<xsd:element ref = "Role" maxOccurs = "unbounded"/>
			<xsd:element ref = "Enterprise" maxOccurs = "unbounded"/>
			<xsd:element ref = "Person" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Measured" type = "MeasuredType"/>
	<xsd:complexType name = "MeasuredType">
		<xsd:attribute name = "definitionSource" type = "xsd:string"/>
		<xsd:attribute name = "measuredCharacteristicName" type = "xsd:string"/>
		<xsd:attribute name = "measuredCharacteristicValue" type = "xsd:double"/>
		<xsd:attribute name = "engineeringUnitOfMeasure" type = "xsd:string"/>
		<xsd:attribute name = "engineeringNegativeTolerance" type = "xsd:double"/>
		<xsd:attribute name = "engineeringPositiveTolerance" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "Modification" type = "ModificationType"/>
	<xsd:complexType name = "ModificationType">
		<xsd:attribute name = "repairInfo" type = "xsd:string"/>
		<xsd:attribute name = "weldsPermitted" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "Moire" type = "MoireType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "MoireType">
		<xsd:attribute name = "diameter" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "ringWidth" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "ringGap" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "ringNumber" use = "required" type = "xsd:nonNegativeInteger"/>
		<xsd:attribute name = "lineWidth" default = "0" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "lineLength" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "lineAngle" type = "angleType"/>
	</xsd:complexType>
	<xsd:element name = "NonstandardAttribute" type = "NonstandardAttributeType" substitutionGroup = "Attribute"/>
	<xsd:complexType name = "NonstandardAttributeType">
		<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "type" use = "required" type = "cadPropertyType"/>
		<xsd:attribute name = "value" use = "required" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Octagon" type = "OctagonType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "OctagonType">
		<xsd:attribute name = "length" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "OptionAttribute" type = "OptionAttributeType" substitutionGroup = "Attribute"/>
	<xsd:complexType name = "OptionAttributeType">
		<xsd:attribute name = "name" use = "required" type = "optionAttributeName"/>
		<xsd:attribute name = "value" use = "required" type = "optionValue"/>
	</xsd:complexType>
	<xsd:element name = "Outline" type = "OutlineType" substitutionGroup = "Simple"/>
	<xsd:complexType name = "OutlineType">
		<xsd:sequence>
			<xsd:element ref = "Polygon"/>
			<xsd:element ref = "LineDescGroup"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Oval" type = "OvalType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "OvalType">
		<xsd:attribute name = "width" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "height" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "Package" type = "PackageType"/>
	<xsd:complexType name = "PackageType">
		<xsd:sequence>
			<xsd:element ref = "Outline"/>
			<xsd:element ref = "LandPattern" minOccurs = "0"/>
			<xsd:element ref = "SilkScreen" minOccurs = "0"/>
			<xsd:element ref = "AssemblyDrawing" minOccurs = "0"/>
			<xsd:element ref = "Pin" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "type" use = "required" type = "packageTypeType"/>
		<xsd:attribute name = "pinOne" type = "xsd:string"/>
		<xsd:attribute name = "height" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "Pad" type = "PadType"/>
	<xsd:element name = "PadStack" type = "PadStackType"/>
	<xsd:complexType name = "PadStackType">
		<xsd:sequence>
			<xsd:element ref = "LayerHole" minOccurs = "0"/>
			<xsd:element ref = "LayerPad" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "net" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:complexType name = "PadType">
		<xsd:sequence>
			<xsd:element ref = "Xform" minOccurs = "0"/>
			<xsd:element ref = "Location"/>
			<xsd:element ref = "StandardShape"/>
		</xsd:sequence>
		<xsd:attribute name = "pin" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Person" type = "PersonType"/>
	<xsd:complexType name = "PersonType">
		<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "enterpriseRef" use = "required" type = "shortNameType"/>
		<xsd:attribute name = "title" type = "xsd:string"/>
		<xsd:attribute name = "email" type = "xsd:string"/>
		<xsd:attribute name = "phone" type = "xsd:string"/>
		<xsd:attribute name = "fax" type = "xsd:string"/>
		<xsd:attribute name = "mailstop" type = "xsd:string"/>
		<xsd:attribute name = "publicKey" type = "xsd:base64Binary"/>
		<xsd:attribute name = "roleRef" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "PhyNet" type = "PhyNetType"/>
	<xsd:element name = "PhyNetGroup" type = "PhyNetGroupType"/>
	<xsd:complexType name = "PhyNetGroupType">
		<xsd:sequence>
			<xsd:element ref = "PhyNet" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "optimized" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "PhyNetPoint" type = "PhyNetPointType"/>
	<xsd:complexType name = "PhyNetPointType">
		<xsd:sequence>
			<xsd:element ref = "StandardShape"/>
		</xsd:sequence>
		<xsd:attribute name = "x" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "y" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "layerRef" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "netNode" use = "required" type = "netPointType"/>
		<xsd:attribute name = "exposure" use = "required" type = "exposureType"/>
		<xsd:attribute name = "layerIndex" type = "xsd:string"/>
		<xsd:attribute name = "comment" type = "xsd:string"/>
		<xsd:attribute name = "via" type = "xsd:boolean"/>
		<xsd:attribute name = "fiducial" type = "xsd:boolean"/>
		<xsd:attribute name = "test" type = "xsd:boolean"/>
		<xsd:attribute name = "staggerX" type = "xsd:double"/>
		<xsd:attribute name = "staggerY" type = "xsd:double"/>
		<xsd:attribute name = "staggerRadius" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:complexType name = "PhyNetType">
		<xsd:sequence>
			<xsd:element ref = "PhyNetPoint" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "Pin" type = "PinType"/>
	<xsd:complexType name = "PinType">
		<xsd:sequence>
			<xsd:element ref = "Xform" minOccurs = "0"/>
			<xsd:element ref = "Location"/>
			<xsd:element ref = "Outline"/>
		</xsd:sequence>
		<xsd:attribute name = "number" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "type" use = "required" type = "cadPinType"/>
		<xsd:attribute name = "electricalType" type = "pinElectricalType"/>
		<xsd:attribute name = "mountType" type = "pinMountType"/>
	</xsd:complexType>
	<xsd:element name = "PolyBegin" type = "PolyBeginType"/>
	<xsd:complexType name = "PolyBeginType">
		<xsd:attribute name = "x" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "y" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "Polygon" type = "PolygonType"/>
	<xsd:complexType name = "PolygonType">
		<xsd:sequence>
			<xsd:element ref = "PolyBegin"/>
			<xsd:element ref = "PolyStep" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Polyline" type = "PolylineType" substitutionGroup = "Simple"/>
	<xsd:complexType name = "PolylineType">
		<xsd:sequence>
			<xsd:element ref = "PolyBegin"/>
			<xsd:element ref = "PolyStep" minOccurs = "2" maxOccurs = "unbounded"/>
			<xsd:element ref = "LineDescGroup"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "PolyStep" abstract = "true"/>
	<xsd:element name = "PolyStepCurve" type = "PolyStepCurveType" substitutionGroup = "PolyStep"/>
	<xsd:complexType name = "PolyStepCurveType">
		<xsd:attribute name = "x" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "y" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "centerX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "centerY" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "clockwise" default = "true" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "PolyStepSegment" type = "PolyStepSegmentType" substitutionGroup = "PolyStep"/>
	<xsd:complexType name = "PolyStepSegmentType">
		<xsd:attribute name = "x" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "y" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "Ranged" type = "RangedType"/>
	<xsd:complexType name = "RangedType">
		<xsd:attribute name = "definitionSource" type = "xsd:string"/>
		<xsd:attribute name = "rangedCharacteristicName" type = "xsd:string"/>
		<xsd:attribute name = "rangedCharacteristicLowerValue" type = "xsd:double"/>
		<xsd:attribute name = "rangedCharacteristicUpperValue" type = "xsd:double"/>
		<xsd:attribute name = "engineeringUnitOfMeasure" type = "xsd:string"/>
		<xsd:attribute name = "engineeringNegativeTolerance" type = "xsd:double"/>
		<xsd:attribute name = "engineeringPositiveTolerance" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "RectCenter" type = "RectCenterType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "RectCenterType">
		<xsd:attribute name = "width" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "height" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "RectCham" type = "RectChamType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "RectChamType">
		<xsd:attribute name = "width" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "height" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "chamfer" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "upperRight" type = "xsd:boolean"/>
		<xsd:attribute name = "upperLeft" type = "xsd:boolean"/>
		<xsd:attribute name = "lowerLeft" type = "xsd:boolean"/>
		<xsd:attribute name = "lowerRight" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "RectCorner" type = "RectCornerType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "RectCornerType">
		<xsd:attribute name = "lowerLeftX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "lowerLeftY" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "upperRightX" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "upperRightY" use = "required" type = "xsd:double"/>
	</xsd:complexType>
	<xsd:element name = "RectRound" type = "RectRoundType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "RectRoundType">
		<xsd:attribute name = "width" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "height" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "radius" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "upperRight" type = "xsd:boolean"/>
		<xsd:attribute name = "upperLeft" type = "xsd:boolean"/>
		<xsd:attribute name = "lowerLeft" type = "xsd:boolean"/>
		<xsd:attribute name = "lowerRight" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "RefDes" type = "RefDesType"/>
	<xsd:complexType name = "RefDesType">
		<xsd:sequence>
			<xsd:element ref = "Tuning" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Firmware" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "populate" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:element name = "Role" type = "RoleType"/>
	<xsd:complexType name = "RoleType">
		<xsd:attribute name = "name" use = "required" type = "roleNameType"/>
		<xsd:attribute name = "description" type = "xsd:string"/>
		<xsd:attribute name = "publicKey" type = "xsd:base64Binary"/>
		<xsd:attribute name = "authority" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Route" type = "RouteType"/>
	<xsd:complexType name = "RouteType">
		<xsd:sequence>
			<xsd:element ref = "LayerFeature" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "net" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "Set" type = "SetType"/>
	<xsd:complexType name = "SetType">
		<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
			<xsd:element ref = "Attribute"/>
			<xsd:element ref = "Pad"/>
			<xsd:element ref = "Fiducial"/>
			<xsd:element ref = "Hole"/>
			<xsd:element ref = "Slot"/>
			<xsd:element ref = "Features"/>
			<xsd:element ref = "ColorGroup"/>
			<xsd:element ref = "LineDescGroup"/>
		</xsd:choice>
		<xsd:attribute name = "net" type = "qualifiedNameType"/>
		<xsd:attribute name = "polarity" type = "polarityType"/>
		<xsd:attribute name = "padUsage" type = "padUsageType"/>
		<xsd:attribute name = "testPoint" type = "xsd:boolean"/>
		<xsd:attribute name = "geometry" type = "xsd:string"/>
		<xsd:attribute name = "plate" type = "xsd:boolean"/>
		<xsd:attribute name = "toolNumberRef" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "SilkScreen" type = "SilkScreenType"/>
	<xsd:complexType name = "SilkScreenType">
		<xsd:sequence>
			<xsd:element ref = "Outline" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Text" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Target" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Simple" abstract = "true" substitutionGroup = "UserPrimitive"/>
	<xsd:element name = "Slot" type = "SlotType"/>
	<xsd:complexType name = "SlotType">
		<xsd:sequence>
			<xsd:element ref = "Simple" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "platingStatus" use = "required" type = "platingStatusType"/>
		<xsd:attribute name = "plusTol" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "minusTol" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "SoftwarePackage" type = "SoftwarePackageType"/>
	<xsd:complexType name = "SoftwarePackageType">
		<xsd:sequence>
			<xsd:element ref = "Certification" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "vendor" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "revision" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "model" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Span" type = "SpanType"/>
	<xsd:complexType name = "SpanType">
		<xsd:attribute name = "fromLayer" type = "qualifiedNameType"/>
		<xsd:attribute name = "toLayer" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "Spec" type = "SpecType"/>
	<xsd:complexType name = "SpecType">
		<xsd:sequence>
			<xsd:element ref = "Xform" minOccurs = "0"/>
			<xsd:element ref = "Location"/>
			<xsd:element ref = "Outline" minOccurs = "0"/>
			<xsd:element ref = "Modification"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "value" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "instruction" type = "xsd:string"/>
		<xsd:attribute name = "tolPlus" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "tolMinus" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "global" use = "required" type = "xsd:boolean"/>
		<xsd:attribute name = "comment" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Stackup" type = "StackupType"/>
	<xsd:element name = "StackupGroup" type = "StackupGroupType"/>
	<xsd:complexType name = "StackupGroupType">
		<xsd:sequence>
			<xsd:element ref = "StackupLayer" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "stackupGroupName" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "thickness" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "tolPlus" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "tolMinus" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "StackupImpedance" type = "StackupImpedanceType"/>
	<xsd:complexType name = "StackupImpedanceType">
		<xsd:choice>
			<xsd:element ref = "Xform" minOccurs = "0"/>
			<xsd:element ref = "Location"/>
			<xsd:element ref = "Polyline" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Contour" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "LayerRef" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:choice>
		<xsd:attribute name = "value" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "type" use = "required" type = "stackImpedanceType"/>
		<xsd:attribute name = "tolPlus" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "tolMinus" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "introduction" use = "required" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "StackupLayer" type = "StackupLayerType"/>
	<xsd:complexType name = "StackupLayerType">
		<xsd:attribute name = "layerOrGroupRef" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "materialType" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "thickness" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "weight" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "coating" type = "xsd:string"/>
		<xsd:attribute name = "comment" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:complexType name = "StackupType">
		<xsd:sequence>
			<xsd:element ref = "StackupGroup" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "StackupImpedance" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "overallThickness" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "tolPlus" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "tolMinus" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "whereMeasured" use = "required" type = "whereMeasuredType"/>
	</xsd:complexType>
	<xsd:element name = "StandardPrimitive" abstract = "true" substitutionGroup = "StandardShape"/>
	<xsd:element name = "StandardPrimitiveRef" type = "StandardPrimitiveRefType" substitutionGroup = "StandardShape"/>
	<xsd:complexType name = "StandardPrimitiveRefType">
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "StandardShape" abstract = "true" substitutionGroup = "Feature"/>
	<xsd:element name = "Step" type = "StepType"/>
	<xsd:element name = "StepList" type = "StepListType"/>
	<xsd:element name = "StepListRef" type = "qualifiedNameType"/>
	<xsd:complexType name = "StepListType">
		<xsd:sequence>
			<xsd:element ref = "Step" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "StepRepeat" type = "StepRepeatType"/>
	<xsd:complexType name = "StepRepeatType">
		<xsd:attribute name = "stepRef" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "x" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "y" use = "required" type = "xsd:double"/>
		<xsd:attribute name = "nx" use = "required" type = "xsd:nonNegativeInteger"/>
		<xsd:attribute name = "ny" use = "required" type = "xsd:nonNegativeInteger"/>
		<xsd:attribute name = "dx" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "dy" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "angle" use = "required" type = "angleType"/>
		<xsd:attribute name = "mirror" use = "required" type = "xsd:boolean"/>
	</xsd:complexType>
	<xsd:complexType name = "StepType">
		<xsd:sequence>
			<xsd:element ref = "Attribute" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "PadStack" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Route" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element name = "Datum" type = "LocationType"/>
			<xsd:element name = "Profile" type = "ContourType"/>
			<xsd:element ref = "StepRepeat" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Package" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "Component" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "VplPackage" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "VplComponent" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "LogicalNet" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "PhyNetGroup" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "LayerFeature" minOccurs = "0" maxOccurs = "unbounded"/>
			<xsd:element ref = "DfxMeasurementList" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "SurfaceFinish" type = "SurfaceFinishType"/>
	<xsd:complexType name = "SurfaceFinishType">
		<xsd:sequence>
			<xsd:element ref = "FinishType" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "layerRef" use = "required" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Target" type = "TargetType"/>
	<xsd:complexType name = "TargetType">
		<xsd:sequence>
			<xsd:element ref = "Xform" minOccurs = "0"/>
			<xsd:element ref = "Location"/>
			<xsd:element ref = "StandardShape"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "Text" type = "TextType" substitutionGroup = "UserPrimitive"/>
	<xsd:element name = "TextAttribute" type = "TextAttributeType" substitutionGroup = "Attribute"/>
	<xsd:complexType name = "TextAttributeType">
		<xsd:attribute name = "name" use = "required" type = "textAttributeName"/>
		<xsd:attribute name = "value" use = "required" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:complexType name = "TextType">
		<xsd:sequence>
			<xsd:element ref = "Xform" minOccurs = "0"/>
			<xsd:element ref = "Location"/>
			<xsd:element ref = "BoundingBox"/>
			<xsd:element ref = "FontRef" minOccurs = "0"/>
			<xsd:element ref = "ColorGroup" minOccurs = "0"/>
		</xsd:sequence>
		<xsd:attribute name = "textString" use = "required" type = "xsd:string"/>
		<xsd:attribute name = "fontSize" use = "required" type = "xsd:positiveInteger"/>
	</xsd:complexType>
	<xsd:element name = "Textual" type = "TextualType"/>
	<xsd:complexType name = "TextualType">
		<xsd:attribute name = "definitionSource" type = "xsd:string"/>
		<xsd:attribute name = "textualCharacteristicName" type = "xsd:string"/>
		<xsd:attribute name = "textualCharacteristicValue" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "Thermal" type = "ThermalType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "ThermalType">
		<xsd:attribute name = "shape" use = "required" type = "thermalShapeType"/>
		<xsd:attribute name = "outerDiameter" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "innerDiameter" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "spokeCount" default = "4" type = "spokeCountType"/>
		<xsd:attribute name = "gap" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "spokeStartAngle" use = "required" type = "angleType"/>
	</xsd:complexType>
	<xsd:element name = "Triangle" type = "TriangleType" substitutionGroup = "StandardPrimitive"/>
	<xsd:complexType name = "TriangleType">
		<xsd:attribute name = "base" use = "required" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "height" use = "required" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "Tuning" type = "TuningType"/>
	<xsd:complexType name = "TuningType">
		<xsd:attribute name = "value" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "comments" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "UserPrimitive" abstract = "true" substitutionGroup = "UserShape"/>
	<xsd:element name = "UserPrimitiveRef" type = "UserPrimitiveRefType" substitutionGroup = "UserShape"/>
	<xsd:complexType name = "UserPrimitiveRefType">
		<xsd:attribute name = "id" use = "required" type = "qualifiedNameType"/>
	</xsd:complexType>
	<xsd:element name = "UserShape" abstract = "true" substitutionGroup = "Feature"/>
	<xsd:element name = "UserSpecial" type = "UserSpecialType" substitutionGroup = "UserPrimitive"/>
	<xsd:complexType name = "UserSpecialType">
		<xsd:sequence>
			<xsd:element ref = "Feature" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "VplComponent" type = "VplComponentType"/>
	<xsd:complexType name = "VplComponentType">
		<xsd:sequence>
			<xsd:element ref = "CadVmpn" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "componentRef" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "bomItemRef" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "vplPackageRef" type = "xsd:string"/>
	</xsd:complexType>
	<xsd:element name = "VplPackage" type = "VplPackageType"/>
	<xsd:complexType name = "VplPackageType">
		<xsd:sequence>
			<xsd:element ref = "Outline"/>
			<xsd:element ref = "Pin" minOccurs = "0" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute name = "name" use = "required" type = "qualifiedNameType"/>
		<xsd:attribute name = "type" use = "required" type = "packageTypeType"/>
		<xsd:attribute name = "pinOne" type = "xsd:string"/>
		<xsd:attribute name = "height" type = "nonNegativeDoubleType"/>
	</xsd:complexType>
	<xsd:element name = "Xform" type = "XformType"/>
	<xsd:complexType name = "XformType">
		<xsd:attribute name = "xOffset" type = "xsd:double"/>
		<xsd:attribute name = "yOffset" type = "xsd:double"/>
		<xsd:attribute name = "rotation" type = "nonNegativeDoubleType"/>
		<xsd:attribute name = "mirror" type = "xsd:boolean"/>
		<xsd:attribute name = "scale" type = "scaleType"/>
	</xsd:complexType>
</xsd:schema>