﻿<?xml version="1.0" encoding="utf-8"?>
<Specifications>
<!-- <Specifications /> contains all CSV export file definitions -->
	<Specification id="85" name="PDX2PDXpert CollectionOrganizations" filename="PDX-CollectionOrganizations">
	<!-- Extracts PDX <Contact> elements to create a file with the following properties: -->
	<!-- * columns: Classification,Classification-Other,Business,Contact,Status,Website,EmailPrimary,DUNS,DUNS+4,POBox,Street,City,Region,PostalCode,Country,PhoneMain,PhoneFax -->
	<!-- * sort by: Classification,Classification-Other,Business,Contact -->
		<Element name="Contact">
			<Attribute name="businessName" sort="1" header="Name" />
			<Constant value="" header="DisplayName" />
			<Attribute name="globalBusinessIdentifier" header="DUNS" />
			<Attribute name="globalLocationIdentifier" header="DUNS4" />
			<Constant value="" header="Language" />
			<Attribute name="globalPartnerClassificationCode" header="PartnerClassification" />
			<Attribute name="globalPartnerClassificationCodeOther" header="Classification-Other" />
			<Constant value="" header="CurrencyShort" />
			<Attribute name="universalResourceIdentifier" header="URL" />
			<Attribute name="postOfficeBoxIdentifier" header="POBox" />
			<Attribute name="addressLine1" header="Street" />
			<Attribute name="addressLine2" header="Street2" />
			<Attribute name="addressLine3" header="Street3" />
			<Attribute name="cityName" header="City" />
			<Attribute name="regionName" header="Region" />
			<Attribute name="nationalPostalCode" header="PostalCode" />
			<Attribute name="globalCountryCode" header="Country" />
			<Attribute name="emailAddress" header="EmailPrimary" />
			<Constant value="" header="EmailSecondary" />
			<Attribute name="telephoneNumber" header="PhoneMain" />
			<Attribute name="facsimileNumber" header="PhoneFax" />
			<Constant value="" header="PhoneAlternate" />
			<Constant value="" header="PhoneEmergency" />
			<Constant value="" header="Notes" />
		</Element>
	</Specification>
	
	<Specification id="86" name="PDX2PDXpert CollectionPersons" filename="PDX-CollectionPersons">
	<!-- Extracts PDX <Contact> elements to create a file with the following properties: -->
	<!-- * columns: Classification,Classification-Other,Business,Contact,Status,Website,EmailPrimary,DUNS,DUNS+4,POBox,Street,City,Region,PostalCode,Country,PhoneMain,PhoneFax -->
	<!-- * sort by: Classification,Classification-Other,Business,Contact -->
		<Element name="Contact">
			<Attribute name="contactName" sort="2" header="Name" />
			<Constant value="" header="JobTitle" />
			<Attribute name="businessName" sort="1" header="Organization" />
			<Constant value="" header="EmployeeID" />
			<Constant value="" header="Supervisor" />
			<Constant value="" header="StartDate" />
			<Constant value="" header="EndDate" />
			<Attribute name="postOfficeBoxIdentifier" header="POBox" />
			<Attribute name="addressLine1" header="Street" />
			<Attribute name="addressLine2" header="Street2" />
			<Attribute name="addressLine3" header="Street3" />
			<Attribute name="cityName" header="City" />
			<Attribute name="regionName" header="Region" />
			<Attribute name="nationalPostalCode" header="PostalCode" />
			<Attribute name="globalCountryCode" header="Country" />
			<Attribute name="emailAddress" header="EmailPrimary" />
			<Attribute name="telephoneNumber" header="PhoneMain" />
			<Attribute name="facsimileNumber" header="PhoneFax" />
			<Constant value="" header="EmailSecondary" />
			<Attribute name="telephoneNumber" header="PhoneMain" />
			<Attribute name="facsimileNumber" header="PhoneFax" />
			<Constant value="" header="PhoneAlternate" />
			<Constant value="" header="PhoneEmergency" />
			<Constant value="" header="Access" />
			<Constant value="" header="AccountName" />
			<Constant value="" header="Password" />
		</Element>
	</Specification>
	
	<Specification id="91" name="PDX2PDXpert ItemMaster-Home" filename="PDX-ItemMaster-Home">
	<!-- <Specification /> is the set of instructions that define a single CSV export file -->
	<!-- 'id' is an arbitrary text identifier, used to sort the Save dialog's "Save as type:" dropdown list -->
	<!-- 'name' displays the specification's name or purpose in the Save dialog's "Save as type:" dropdown list, e.g., "Home Item Master (*.csv)" -->
	<!-- 'filename' is what will be assigned as the default filename, e.g., ItemMaster-Home.csv -->
	<!-- This specification extracts PDXpert-specific PDX <Item> elements to create a file with the following properties: -->
	<!-- * columns: Class,Owner,Type,Number,Revision,Lifecycle,Lifecycle-Other,EffectiveDate,Description,Trustee,DefaultUOM,MakeBuy,GlobalNumber,Location,RevisionNote,CostPerUnit,CostCurrencyShort,PackageQty,PackageUOM,Certify,Serialize,Complies,Notes -->
	<!-- * sort by: Class,Owner,Type,Number -->
		<Element name="Item">
		<!-- <Element /> identifies which PDX element is providing the information -->
		<!-- 'name' is required -->
			<Attribute name="itemClassification" column="1" sort="1" datatype="string" header="Class" />
			<!-- <Attribute /> identifies the selected element's attribute containing the data to be exported -->
			<!-- 'name' is required; it is case-sensitive and must match the exact name of the PDX attribute name -->
			<!-- 'column' appends the column in the specified order, and is optional (if omitted, append columns in the same order as attributes) -->
			<!-- 'sort' sorts the rows in the specified order, and is optional (if omitted, sort the list by the first column) -->
			<!-- 'datatype' specifies that the column is sorted as 'string' (text) or 'numeric' (value) data, and is optional (if omitted, sort the list as text) -->
			<!-- 'header' defines the text used for column's header label in the export file, and is required -->
			<Lookup name="ownerContactUniqueIdentifier" value="businessName" sort="2" header="Owner" />
			<!-- <Lookup /> searches for a referenced element ID, then assigns an attribute's value from the found element -->
			<!-- 'name' is a PDX IDREF used to find the matching PDX ID element; it is case-sensitive and required -->
			<!-- 'value' the found element's attribute name; it is case-sensitive and required -->
			<!-- 'column' appends the column in the specified order, and is optional (if omitted, append columns in the same order as attributes) -->
			<!-- 'sort' sorts the rows in the specified order, and is optional (if omitted, sort the list by the first column) -->
			<!-- 'datatype' specifies that the column is sorted as 'string' (text) or 'numeric' (value) data, and is optional (if omitted, sort the list as text) -->
			<!-- 'header' defines the text used for column's header label in the export file, and is required -->
			<Attribute name="globalProductTypeCode" sort="3" header="Type" />
			<Attribute name="itemIdentifier" sort="4" header="Number" />
			<Attribute name="revisionIdentifier" header="Revision" />
			<Attribute name="globalLifeCyclePhaseCode" header="Lifecycle" />
			<Attribute name="globalLifeCyclePhaseCodeOther" header="Lifecycle-Other" />
			<Attribute name="revisionIncorporatedDate" header="EffectiveDate" />
			<Attribute name="description" header="Description" />
			<Attribute name="ownerName" header="Trustee" />
			<Attribute name="globalProductUnitOfMeasureCode" header="DefaultUOM" />
			<Attribute name="makeBuy" header="MakeBuy" />
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrName="name" attrValue="globalTradeIdentificationNumber">
				<!-- 'attrName' specifies the PDX attribute's name, and is optional (if omitted, defaults to "name")  -->
				<!-- 'attrValue' identifies the value of the attrName, and is required if not pivoting the group  -->
					<Attribute name="value" header="GlobalNumber" />
				</Element>
				<Constant value="" header="Location" />
				<!-- <Constant /> is static text applied to each exported row -->
				<!-- 'value' defines data applied to every row in the column (if empty, then an empty column is created with the specified header value) -->
				<!-- 'column' appends the column in the specified order, and is optional (if omitted, append columns in the same order as attributes) -->
				<!-- 'sort' sorts the rows in the specified order, and is optional (if omitted, sort the list by the first column) -->
				<!-- 'datatype' specifies that the column is sorted as 'string' (text) or 'numeric' (value) data, and is optional (if omitted, sort the list as text) -->
				<!-- 'header' defines the text used for column's header label in the export file, and is required -->
				<Element name="AdditionalAttribute" attrValue="revisionDescription">
					<Attribute name="value" header="RevisionNote" />
				</Element>
				<Element name="AdditionalAttribute" attrValue="budgetedCost">
					<Attribute name="value" header="CostPerUnit" />
					<Attribute name="dimension" header="CostCurrencyShort" />
				</Element>
				<Element name="AdditionalAttribute" attrValue="standardPackagingQuantity">
					<Attribute name="value" header="PackageQty" />
					<Attribute name="dimension" header="PackageUOM" />
				</Element>
			</Element>
			<Attribute name="isCertificationRequired" header="Certify" />
			<Attribute name="isSerializationRequired" header="Serialize" />
			<Constant value="" header="Complies" />
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrValue="notes">
					<Attribute name="value" header="Notes" />
				</Element>
			</Element>
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Custom">
				<Element name="AdditionalAttribute" pivot="true">
				<!-- 'pivot' converts all rows within the group to columns in the export file; 'attrName' / 'attrValue' not used -->
					<Attribute name="value" header="{name}"/>
					<!-- 'header="{name}"' assigns the AdditionalAttribute's assigned name -->
					<Attribute name="dimension" header="{name}_UOM"/>
					<!-- 'header' value can prefix or suffix text to the {name} token -->
				</Element>
			</Element>
		</Element>
	</Specification>
	
	<Specification id="92" name="PDX2PDXpert ItemMaster-Partner" filename="PDX-ItemMaster-Partner" >
	<!-- Extracts PDX <ManufacturerPart> elements to create a file with the following properties: -->
	<!-- * columns: Class,Manufacturer,Type,Number,Revision,Lifecycle,Lifecycle-Other,Description,Trustee,RevisionNote,Released,ChangeNotice,Language,BOMType,PackageQty,PackageUOM,CostPerUnit,Currency,HandlingStorage,RecoveryMethod,(custom attributes),Notes -->
	<!-- * sort by: Class,Manufacturer,Type,Number -->
		<Element name="ManufacturerPart">
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrName="name" attrValue="itemClassification">
					<Attribute name="value" sort="1" header="Class" />
				</Element>
			</Element>
			<Attribute name="manufacturerName" sort="2" header="Manufacturer" />
			<Attribute name="manufacturerPartType" sort="3" header="Type" />
			<Attribute name="manufacturerPartIdentifier" sort="4" header="Number" />
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrName="name" attrValue="revisionIdentifier">
					<Attribute name="value" header="Revision" />
				</Element>
			</Element>
			<Attribute name="globalManufacturerPartStatusCode" header="Lifecycle" />
			<Attribute name="globalManufacturerPartStatusCodeOther" header="Lifecycle-Other" />
			<Attribute name="description" header="Description" />
			<Attribute name="owner" header="Trustee" />
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrName="name" attrValue="revisionDescription">
					<Attribute name="value" header="RevisionNote" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="isReleased">
					<Attribute name="value" header="Released" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="releasingChangeNotice">
					<Attribute name="value" header="ChangeNotice" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="language">
					<Attribute name="value" header="Language" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="bomTypeCode">
					<Attribute name="value" header="BOMType" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="standardPackagingQuantity">
					<Attribute name="value" header="PackageQty" />
					<Attribute name="dimension" header="PackageUOM" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="budgetedCost">
					<Attribute name="value" header="CostPerUnit" />
					<Attribute name="dimension" header="Currency" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="partHandlingStorageCategory">
					<Attribute name="value" header="HandlingStorage" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="partRecoveryMethod">
					<Attribute name="value" header="RecoveryMethod" />
				</Element>
			</Element>
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Custom">
				<Element name="AdditionalAttribute" pivot="true">
					<Attribute name="value" header="{name}"/>
					<Attribute name="dimension" header="{name}_UOM"/>
				</Element>
			</Element>
			<Attribute name="referenceNotes" header="Notes" />
		</Element>
	</Specification>
	
	<Specification id="93" name="PDX2PDXpert ListFiles" filename="PDX-ListFiles" >
	<!-- Extracts PDX <Item> elements and their <Attachments> to create a file with the following properties: -->
	<!-- * columns: Class,Owner,Type,Number,IsFileIn,URI,FileID,VersionID,FileSIze,Description,MimeType,ModDate,RefName -->
	<!-- * sort by: Type,Number,IsFileIn,URI -->
		<Element name="Item">
			<Attribute name="itemClassification" header="Class" />
			<Lookup name="ownerContactUniqueIdentifier" value="businessName" header="Owner" />
			<Attribute name="globalProductTypeCode" sort="1" header="Type" />
			<Attribute name="itemIdentifier" sort="2" header="Number" />
			<Element name="Attachments">
				<Element name="Attachment">
					<Attribute name="isFileIn" sort="3" header="IsFileIn" />
					<Attribute name="universalResourceIdentifier" sort="4" header="URI" />
					<Attribute name="fileIdentifier" header="FileID" />
					<Attribute name="versionIdentifier" header="VersionID" />
					<Attribute name="fileSize" header="FileSize" />
					<Attribute name="description" header="Description" />
					<Attribute name="globalMimeTypeQualifierCode" header="MimeType" />
					<Attribute name="attachmentModificationDate" header="ModDate" />
					<Attribute name="referenceName" header="RefName" />
				</Element>
			</Element>
		</Element>
	</Specification>
	
	<Specification id="94" name="PDX2PDXpert ListSources" filename="PDX-ListSources">
	<!-- Extracts PDX <Item> elements and their <ApprovedManufacturerList> to create a file with the following properties: -->
	<!-- * columns: Class,Owner,Type,Number,ChildClass,ChildOwner,ChildType,ChildNumber,Rank,Notes -->
	<!-- * sort by: Type, Number, Rank -->
		<Element name="Item">
			<Attribute name="itemClassification" header="Class" />
			<Lookup name="ownerContactUniqueIdentifier" value="businessName" header="Owner" />
			<Attribute name="globalProductTypeCode" sort="1" header="Type" />
			<Attribute name="itemIdentifier" sort="2" header="Number" />
			<Element name="ApprovedManufacturerList" >
				<Element name="ApprovedManufacturerListItem">
					<Constant value="Part" header="ChildClass" />
					<Attribute name="manufacturedBy" header="ChildOwner" />
					<Lookup name="manufacturerPartUniqueIdentifier" value="manufacturerPartType" header="ChildType" />
					<Attribute name="manufacturerPartIdentifier" header="ChildNumber" />
					<Attribute name="globalPreferredStatusCode" sort="3" datatype="number" header="Rank" />
					<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
						<Attribute name="notes" header="Notes" value="value" />
					</Element>
				</Element>
			</Element>
		</Element>
	</Specification>
	
	<Specification id="96" name="PDX2PDXpert ListBOM" filename="PDX-ListBOM">
	<!-- Extracts PDX <Item> elements and their <BillOfMaterial> to create a file with the following properties: -->
	<!-- * columns: Class,Owner,Type,Number,Revision,Lifecycle,Description,Find,ChildClass,ChildType,ChildNumber,ChildRevision,ChildLifecycle,ChildDescription,Quantity,Unit,Per,RefDes,Notes -->
	<!-- * sort by: Type, Number, Find (as numeric value) -->
		<Element name="Item">
			<Attribute name="itemClassification" header="Class" />
			<Lookup name="ownerContactUniqueIdentifier" value="businessName" header="Owner" />
			<Attribute name="globalProductTypeCode" sort="1" header="Type" />
			<Attribute name="itemIdentifier" sort="2" header="Number" />
			<!-- Attribute name="revisionIdentifier" header="Revision" / -->
			<!-- Attribute name="globalLifeCyclePhaseCode" header="Lifecycle" / -->
			<!-- Attribute name="globalLifeCyclePhaseCodeOther" header="Lifecycle-Other" / -->
			<!-- Attribute name="revisionIncorporatedDate" header="EffectiveDate" / -->
			<!-- Attribute name="description" header="Description" / -->
			<Element name="BillOfMaterial">
				<Element name="BillOfMaterialItem">
				<!-- Each instance of BillOfMaterialItem is a separate row & the Item class, owner, type, number are repeated -->
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="itemClassification" header="ChildClass" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="globalProductTypeCode" header="ChildType" />
					<Attribute name="billOfMaterialItemIdentifier" header="ChildNumber" />
					<!-- Lookup name="billOfMaterialItemUniqueIdentifier" value="revisionIdentifier" header="ChildRevision" / -->
					<!-- Lookup name="billOfMaterialItemUniqueIdentifier" value="globalLifeCyclePhaseCode" header="ChildLifecycle" / -->
					<!-- Attribute name="description" header="ChildDescription" / -->
					<Attribute name="proprietarySequenceIdentifier" sort="3" datatype="numeric" header="Find" />
					<Attribute name="itemQuantity" header="Quantity" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="globalProductUnitOfMeasureCode" header="Unit" />
					<Attribute name="globalProductQuantityTypeCode" header="Per" />
					<Element name="ReferenceDesignators">
						<Element name="ReferenceDesignator" concatenate="true" delimiter=",">
						<!-- Each instance of ReferenceDesignator is concatenated, separated by an optional delimiter (default is no delimiter) -->
							<Attribute name="referenceDesignatorName" header="RefDes" />
						</Element>
					</Element>
					<Attribute name="notes" header="Notes" />
				</Element>
			</Element>
		</Element>
	</Specification>

	<!-- normal ExportSpecifications.xml definitions follow -->
	<Specification id="11" name="PDXpert Items" filename="Items">
	<!-- <Specification /> is the set of instructions that define a single CSV export file -->
	<!-- 'id' is an arbitrary text identifier, used to sort the Save dialog's "Save as type:" dropdown list -->
	<!-- 'name' displays the specification's name or purpose in the Save dialog's "Save as type:" dropdown list, e.g., "Home Item Master (*.csv)" -->
	<!-- 'filename' is what will be assigned as the default filename, e.g., ItemMaster-Home.csv -->
	<!-- This specification extracts PDXpert-specific PDX <Item> elements to create a file with the following properties: -->
	<!-- * columns: Class,Owner,Type,Number,Revision,Lifecycle,Lifecycle-Other,EffectiveDate,Description,Trustee,DefaultUOM,MakeBuy,GlobalNumber,Location,RevisionNote,CostPerUnit,CostCurrencyShort,PackageQty,PackageUOM,Certify,Serialize,Complies,Notes -->
	<!-- * sort by: Class,Owner,Type,Number -->
		<Element name="Item">
		<!-- <Element /> identifies which PDX element is providing the information -->
		<!-- 'name' is required -->
			<Attribute name="itemClassification" column="1" sort="1" datatype="string" header="Class" />
			<!-- <Attribute /> identifies the selected element's attribute containing the data to be exported -->
			<!-- 'name' is required; it is case-sensitive and must match the exact name of the PDX attribute name -->
			<!-- 'column' appends the column in the specified order, and is optional (if omitted, append columns in the same order as attributes) -->
			<!-- 'sort' sorts the rows in the specified order, and is optional (if omitted, sort the list by the first column) -->
			<!-- 'datatype' specifies that the column is sorted as 'string' (text) or 'numeric' (value) data, and is optional (if omitted, sort the list as text) -->
			<!-- 'header' defines the text used for column's header label in the export file, and is required -->
			<Lookup name="ownerContactUniqueIdentifier" value="businessName" sort="2" header="Owner" />
			<!-- <Lookup /> searches for a referenced element ID, then assigns an attribute's value from the found element -->
			<!-- 'name' is a PDX IDREF used to find the matching PDX ID element; it is case-sensitive and required -->
			<!-- 'value' the found element's attribute name; it is case-sensitive and required -->
			<!-- 'column' appends the column in the specified order, and is optional (if omitted, append columns in the same order as attributes) -->
			<!-- 'sort' sorts the rows in the specified order, and is optional (if omitted, sort the list by the first column) -->
			<!-- 'datatype' specifies that the column is sorted as 'string' (text) or 'numeric' (value) data, and is optional (if omitted, sort the list as text) -->
			<!-- 'header' defines the text used for column's header label in the export file, and is required -->
			<Attribute name="globalProductTypeCode" sort="3" header="Type" />
			<Attribute name="itemIdentifier" sort="4" header="Number" />
			<Attribute name="revisionIdentifier" header="Revision" />
			<Attribute name="globalLifeCyclePhaseCode" header="Lifecycle" />
			<Attribute name="globalLifeCyclePhaseCodeOther" header="Lifecycle-Other" />
			<Attribute name="revisionIncorporatedDate" header="EffectiveDate" />
			<Attribute name="description" header="Description" />
			<Attribute name="ownerName" header="Trustee" />
			<Attribute name="globalProductUnitOfMeasureCode" header="DefaultUOM" />
			<Attribute name="makeBuy" header="MakeBuy" />
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrName="name" attrValue="globalTradeIdentificationNumber">
				<!-- 'attrName' specifies the PDX attribute's name, and is optional (if omitted, defaults to "name")  -->
				<!-- 'attrValue' identifies the value of the attrName, and is required if not pivoting the group  -->
					<Attribute name="value" header="GlobalNumber" />
				</Element>
				<Constant value="" header="Location" />
				<!-- <Constant /> is static text applied to each exported row -->
				<!-- 'value' defines data applied to every row in the column (if empty, then an empty column is created with the specified header value) -->
				<!-- 'column' appends the column in the specified order, and is optional (if omitted, append columns in the same order as attributes) -->
				<!-- 'sort' sorts the rows in the specified order, and is optional (if omitted, sort the list by the first column) -->
				<!-- 'datatype' specifies that the column is sorted as 'string' (text) or 'numeric' (value) data, and is optional (if omitted, sort the list as text) -->
				<!-- 'header' defines the text used for column's header label in the export file, and is required -->
				<Element name="AdditionalAttribute" attrValue="revisionDescription">
					<Attribute name="value" header="RevisionNote" />
				</Element>
				<Element name="AdditionalAttribute" attrValue="budgetedCost">
					<Attribute name="value" header="CostPerUnit" />
					<Attribute name="dimension" header="CostCurrencyShort" />
				</Element>
				<Element name="AdditionalAttribute" attrValue="standardPackagingQuantity">
					<Attribute name="value" header="PackageQty" />
					<Attribute name="dimension" header="PackageUOM" />
				</Element>
			</Element>
			<Attribute name="isCertificationRequired" header="Certify" />
			<Attribute name="isSerializationRequired" header="Serialize" />
			<Constant value="" header="Complies" />
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrValue="notes">
					<Attribute name="value" header="Notes" />
				</Element>
			</Element>
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Custom">
				<Element name="AdditionalAttribute" pivot="true">
				<!-- 'pivot' converts all rows within the group to columns in the export file; 'attrName' / 'attrValue' not used -->
					<Attribute name="value" header="{name}"/>
					<!-- 'header="{name}"' assigns the AdditionalAttribute's assigned name -->
					<Attribute name="dimension" header="{name}_UOM"/>
					<!-- 'header' value can prefix or suffix text to the {name} token -->
				</Element>
			</Element>
		</Element>
	</Specification>
	
	<Specification id="21" name="Agile 9.3 Items" filename="Items">
	<!-- This specification extracts Agile-specific PDX <Item> elements to create a file with the following properties: -->
	<!-- * columns: Attributes from <Item>, Page 2, Page 3 -->
	<!-- * sort by: Identifier,ProductType -->
		<Element name="Item">
			<Attribute name="itemIdentifier" sort="1" header="Identifier" />
			<Attribute name="globalLifeCyclePhaseCode" header="Lifecycle" />
			<Attribute name="globalLifeCyclePhaseCodeOther" header="Lifecycle-Other" />
			<Attribute name="globalProductTypeCode" sort="2" header="ProductType" />
			<Attribute name="itemClassification" header="Classification" />
			<Attribute name="revisionIdentifier" header="Revision" />
			<Attribute name="versionIdentifier" header="Version" />
			<Attribute name="proprietaryProductFamily" header="ProductFamily" />
			<Attribute name="category" header="Category" />
			<Attribute name="globalProductUnitOfMeasureCode" header="ProductUOM" />
			<Attribute name="makeBuy" header="MakeBuy" />
			<Attribute name="makeBuyOther" header="MakeBuy-Other" />
			<Attribute name="minimumRevision" header="MinimumRevision" />
			<Attribute name="revisionReleasedDate" header="ReleaseDate" />
			<Attribute name="revisionIncorporatedDate" header="IncorporateDate" />
			<Attribute name="isSerializationRequired" header="Serialize" />
			<Attribute name="isCertificationRequired" header="Certify" />
			<Attribute name="ownerName" header="Owner" />
			<Attribute name="description" header="Description" />
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="Agile.Page Two.Page Two">
				<Element name="AdditionalAttribute" pivot="true">
					<Attribute name="value" header="{name}"/>
				</Element>
			</Element>
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="Agile.Page Three.Page Three">
				<Element name="AdditionalAttribute" pivot="true">
					<Attribute name="value" header="{name}"/>
				</Element>
			</Element>
		</Element>
	</Specification>

	<Specification id="12" name="PDXpert Manufacturer Parts" filename="MfrParts" >
	<!-- Extracts PDX <ManufacturerPart> elements to create a file with the following properties: -->
	<!-- * columns: Class,Manufacturer,Type,Number,Revision,Lifecycle,Lifecycle-Other,Description,Trustee,RevisionNote,Released,ChangeNotice,Language,BOMType,PackageQty,PackageUOM,CostPerUnit,Currency,HandlingStorage,RecoveryMethod,(custom attributes),Notes -->
	<!-- * sort by: Class,Manufacturer,Type,Number -->
		<Element name="ManufacturerPart">
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrName="name" attrValue="itemClassification">
					<Attribute name="value" sort="1" header="Class" />
				</Element>
			</Element>
			<Attribute name="manufacturerName" sort="2" header="Manufacturer" />
			<Attribute name="manufacturerPartType" sort="3" header="Type" />
			<Attribute name="manufacturerPartIdentifier" sort="4" header="Number" />
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrName="name" attrValue="revisionIdentifier">
					<Attribute name="value" header="Revision" />
				</Element>
			</Element>
			<Attribute name="globalManufacturerPartStatusCode" header="Lifecycle" />
			<Attribute name="globalManufacturerPartStatusCodeOther" header="Lifecycle-Other" />
			<Attribute name="description" header="Description" />
			<Attribute name="owner" header="Trustee" />
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
				<Element name="AdditionalAttribute" attrName="name" attrValue="revisionDescription">
					<Attribute name="value" header="RevisionNote" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="isReleased">
					<Attribute name="value" header="Released" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="releasingChangeNotice">
					<Attribute name="value" header="ChangeNotice" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="language">
					<Attribute name="value" header="Language" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="bomTypeCode">
					<Attribute name="value" header="BOMType" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="standardPackagingQuantity">
					<Attribute name="value" header="PackageQty" />
					<Attribute name="dimension" header="PackageUOM" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="budgetedCost">
					<Attribute name="value" header="CostPerUnit" />
					<Attribute name="dimension" header="Currency" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="partHandlingStorageCategory">
					<Attribute name="value" header="HandlingStorage" />
				</Element>
				<Element name="AdditionalAttribute" attrName="name" attrValue="partRecoveryMethod">
					<Attribute name="value" header="RecoveryMethod" />
				</Element>
			</Element>
			<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Custom">
				<Element name="AdditionalAttribute" pivot="true">
					<Attribute name="value" header="{name}"/>
					<Attribute name="dimension" header="{name}_UOM"/>
				</Element>
			</Element>
			<Attribute name="referenceNotes" header="Notes" />
		</Element>
	</Specification>
	
	<Specification id="22" name="Agile 9.3 Manufacturer Parts" filename="MfrParts" >
	<!-- Extracts PDX <ManufacturerPart> elements to create a file with the following properties: -->
	<!-- * columns: attributes of <ManufacturerPart> -->
	<!-- * sort by: Manufacturer,MfrIdentifier -->
		<Element name="ManufacturerPart">
			<Attribute name="manufacturerName" sort="1" header="Manufacturer" />
			<Attribute name="manufacturerPartIdentifier" sort="2" header="MfrIdentifier" />
			<Attribute name="globalManufacturerPartStatusCode" header="PartStatus" />
			<Attribute name="globalManufacturerPartStatusCodeOther" header="PartStatus-Other" />
			<Attribute name="referenceNotes" header="ReferenceNotes" />
			<Attribute name="manufacturerPartType" header="MfrPartType" />
			<Attribute name="description" header="PartDescription" />
			<Attribute name="owner" header="Owner" />
		</Element>
	</Specification>
	
	<Specification id="14" name="PDXpert Item with Sources" filename="ItemSources">
	<!-- Extracts PDX <Item> elements and their <ApprovedManufacturerList> to create a file with the following properties: -->
	<!-- * columns: Class,Owner,Type,Number,ChildClass,ChildOwner,ChildType,ChildNumber,Rank,Notes -->
	<!-- * sort by: Type, Number, Rank -->
		<Element name="Item">
			<Attribute name="itemClassification" header="Class" />
			<Lookup name="ownerContactUniqueIdentifier" value="businessName" header="Owner" />
			<Attribute name="globalProductTypeCode" sort="1" header="Type" />
			<Attribute name="itemIdentifier" sort="2" header="Number" />
			<Element name="ApprovedManufacturerList" >
				<Element name="ApprovedManufacturerListItem">
					<Constant value="Part" header="ChildClass" />
					<Attribute name="manufacturedBy" header="ChildOwner" />
					<Lookup name="manufacturerPartUniqueIdentifier" value="manufacturerPartType" header="ChildType" />
					<Attribute name="manufacturerPartIdentifier" header="ChildNumber" />
					<Attribute name="globalPreferredStatusCode" sort="3" datatype="number" header="Rank" />
					<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="PDXpert.Attributes">
						<Attribute name="notes" header="Notes" value="value" />
					</Element>
				</Element>
			</Element>
		</Element>
	</Specification>
	
	<Specification id="24" name="Agile 9.3 Item with Sources" filename="ItemSources">
	<!-- Extracts PDX <Item> elements and their <ApprovedManufacturerList> to create a file with the following properties: -->
	<!-- * columns: identity attributes of <Item> and all <ApprovedManufacturerListItem> attributes -->
	<!-- * sort by: Identifier,ProductType,PreferredStatus,Manufacturer,PartIdentifier -->
		<Element name="Item">
			<Attribute name="itemIdentifier" sort="1" header="Identifier" />
			<Attribute name="globalLifeCyclePhaseCode" header="Lifecycle" />
			<Attribute name="globalLifeCyclePhaseCodeOther" header="Lifecycle-Other" />
			<Attribute name="globalProductTypeCode" sort="2" header="ProductType" />
			<Attribute name="itemClassification" header="Classification" />
			<Attribute name="revisionIdentifier" header="Revision" />
			<Attribute name="versionIdentifier" header="Version" />
			<Attribute name="description" header="Description" />
			<Element name="ApprovedManufacturerList" >
				<Element name="ApprovedManufacturerListItem">
					<Attribute name="globalPreferredStatusCode" sort="3" datatype="number" header="PreferredStatus" />
					<Attribute name="manufacturedBy" sort="4" header="Manufacturer" />
					<Attribute name="manufacturerPartIdentifier" sort="5" header="PartIdentifier" />
					<Attribute name="globalManufacturerPartStatusCode" header="PartStatus" />
					<Attribute name="globalManufacturerPartStatusCodeOther" header="PartStatus-Other" />
					<Attribute name="description" header="Description" />
					<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="Agile">
						<Element name="AdditionalAttribute" pivot="true">
							<Attribute name="value" header="{name}"/>
						</Element>
					</Element>
				</Element>
			</Element>
		</Element>
	</Specification>
	
	<Specification id="15" name="PDXpert Simple Part List" filename="PartList">
	<!-- For a selected PDX <Item> element, list the <BillOfMaterial> to create a file with the following properties: -->
	<!-- * columns: Find,Type,Number,Revision,Lifecycle,Description,Quantity,Unit,Per,RefDes,Notes -->
	<!-- * sort by: Find (as numeric value) -->
		<Element name="Item">
			<Element name="BillOfMaterial">
				<Element name="BillOfMaterialItem">
				<!-- Each instance of BillOfMaterialItem is a separate row & the Item class, owner, type, number are repeated -->
					<Attribute name="proprietarySequenceIdentifier" sort="1" datatype="numeric" header="Find" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="globalProductTypeCode" header="Type" />
					<Attribute name="billOfMaterialItemIdentifier" header="Number" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="revisionIdentifier" header="Revision" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="globalLifeCyclePhaseCode" header="Lifecycle" />
					<Attribute name="description" header="Description" />
					<Attribute name="itemQuantity" header="Quantity" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="globalProductUnitOfMeasureCode" header="Unit" />
					<Attribute name="globalProductQuantityTypeCode" header="Per" />
					<Element name="ReferenceDesignators">
						<Element name="ReferenceDesignator" concatenate="true" delimiter=",">
						<!-- Each instance of ReferenceDesignator is concatenated, separated by an optional delimiter (default is no delimiter) -->
							<Attribute name="referenceDesignatorName" header="RefDes" />
						</Element>
					</Element>
					<Attribute name="notes" header="Notes" />
				</Element>
			</Element>
		</Element>
	</Specification>

	<Specification id="25" name="Agile 9.3 Simple Part List" filename="PartList">
	<!-- For a selected PDX <Item> element, list the <BillOfMaterial> to create a file with the following properties: -->
	<!-- * columns: all <BillOfMaterial> attributes -->
	<!-- * sort by: Sequence (as numeric value),BOMItemIdentifier -->
		<Element name="Item">
			<Element name="BillOfMaterial">
				<Element name="BillOfMaterialItem">
					<Attribute name="proprietarySequenceIdentifier" sort="1" datatype="numeric" header="Sequence" />
					<Attribute name="billOfMaterialItemIdentifier" sort="2" header="BOMItemIdentifier" />
					<Attribute name="revisionIdentifier" header="BOMItemRevision" />
					<Attribute name="description" header="BOMItemDescription" />
					<Attribute name="itemQuantity" header="Quantity" />
					<Attribute name="globalProductQuantityTypeCode" header="QtyCode" />
					<Attribute name="globalProductQuantityTypeCodeOther" header="QtyCode-Other" />
					<Attribute name="isSerializationRequired" header="Serialize" />
					<Attribute name="notes" header="Notes" />
					<Element name="ReferenceDesignators">
						<Element name="ReferenceDesignator" concatenate="true" delimiter=",">
							<Attribute name="referenceDesignatorName" header="ReferenceDesignators" />
						</Element>
					</Element>
				</Element>
			</Element>
		</Element>
	</Specification>

	<Specification id="16" name="PDXpert Item with Bill of Materials" filename="ItemWithBOM">
	<!-- Extracts PDX <Item> elements and their <BillOfMaterial> to create a file with the following properties: -->
	<!-- * columns: Class,Owner,Type,Number,Revision,Lifecycle,Description,Find,ChildClass,ChildType,ChildNumber,ChildRevision,ChildLifecycle,ChildDescription,Quantity,Unit,Per,RefDes,Notes -->
	<!-- * sort by: Type, Number, Find (as numeric value) -->
		<Element name="Item">
			<Attribute name="itemClassification" header="Class" />
			<Lookup name="ownerContactUniqueIdentifier" value="businessName" header="Owner" />
			<Attribute name="globalProductTypeCode" sort="1" header="Type" />
			<Attribute name="itemIdentifier" sort="2" header="Number" />
			<Attribute name="revisionIdentifier" header="Revision" />
			<Attribute name="globalLifeCyclePhaseCode" header="Lifecycle" />
			<Attribute name="globalLifeCyclePhaseCodeOther" header="Lifecycle-Other" />
			<Attribute name="revisionIncorporatedDate" header="EffectiveDate" />
			<Attribute name="description" header="Description" />
			<Element name="BillOfMaterial">
				<Element name="BillOfMaterialItem">
				<!-- Each instance of BillOfMaterialItem is a separate row & the Item class, owner, type, number are repeated -->
					<Attribute name="proprietarySequenceIdentifier" sort="3" datatype="numeric" header="Find" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="itemClassification" header="ChildClass" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="globalProductTypeCode" header="ChildType" />
					<Attribute name="billOfMaterialItemIdentifier" header="ChildNumber" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="revisionIdentifier" header="ChildRevision" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="globalLifeCyclePhaseCode" header="ChildLifecycle" />
					<Attribute name="description" header="ChildDescription" />
					<Attribute name="itemQuantity" header="Quantity" />
					<Lookup name="billOfMaterialItemUniqueIdentifier" value="globalProductUnitOfMeasureCode" header="Unit" />
					<Attribute name="globalProductQuantityTypeCode" header="Per" />
					<Element name="ReferenceDesignators">
						<Element name="ReferenceDesignator" concatenate="true" delimiter=",">
						<!-- Each instance of ReferenceDesignator is concatenated, separated by an optional delimiter (default is no delimiter) -->
							<Attribute name="referenceDesignatorName" header="RefDes" />
						</Element>
					</Element>
					<Attribute name="notes" header="Notes" />
				</Element>
			</Element>
		</Element>
	</Specification>

	<Specification id="26" name="Agile 9.3 Item with Bill of Materials" filename="ItemWithBOM">
	<!-- Extracts PDX <Item> elements and their <BillOfMaterial> to create a file with the following properties: -->
	<!-- * columns: identity attributes of <Item> and all <BillOfMaterialItem> attributes -->
	<!-- * sort by: Identifier,ProductType,Sequence(as numeric),BOMItemIdentifier -->
		<Element name="Item">
			<Attribute name="itemIdentifier" sort="1" header="Identifier" />
			<Attribute name="globalLifeCyclePhaseCode" header="Lifecycle" />
			<Attribute name="globalLifeCyclePhaseCodeOther" header="Lifecycle-Other" />
			<Attribute name="globalProductTypeCode" sort="2" header="ProductType" />
			<Attribute name="itemClassification" header="Classification" />
			<Attribute name="revisionIdentifier" header="Revision" />
			<Attribute name="versionIdentifier" header="Version" />
			<Attribute name="description" header="Description" />
			<Element name="BillOfMaterial">
				<Element name="BillOfMaterialItem">
					<Attribute name="proprietarySequenceIdentifier" sort="3" datatype="numeric" header="Sequence" />
					<Attribute name="billOfMaterialItemIdentifier" sort="4" header="BOMItemIdentifier" />
					<Attribute name="revisionIdentifier" header="BOMItemRevision" />
					<Attribute name="description" header="BOMItemDescription" />
					<Attribute name="itemQuantity" header="Quantity" />
					<Attribute name="globalProductQuantityTypeCode" header="QtyCode" />
					<Attribute name="globalProductQuantityTypeCodeOther" header="QtyCode-Other" />
					<Attribute name="isSerializationRequired" header="Serialize" />
					<Attribute name="notes" header="Notes" />
					<Element name="ReferenceDesignators">
						<Element name="ReferenceDesignator" concatenate="true" delimiter=",">
							<Attribute name="referenceDesignatorName" header="RefDes" />
						</Element>
					</Element>
					<Element name="AdditionalAttributes" attrName="groupLabel" attrValue="Agile">
						<Element name="AdditionalAttribute" pivot="true">
							<Attribute name="value" header="{name}"/>
						</Element>
					</Element>
				</Element>
			</Element>
		</Element>
	</Specification>

	<Specification id="71" name="Contact List" filename="Contacts">
	<!-- Extracts PDX <Contact> elements to create a file with the following properties: -->
	<!-- * columns: Classification,Classification-Other,Business,Contact,Status,Website,EmailPrimary,DUNS,DUNS+4,POBox,Street,City,Region,PostalCode,Country,PhoneMain,PhoneFax -->
	<!-- * sort by: Classification,Classification-Other,Business,Contact -->
		<Element name="Contact">
			<Attribute name="businessName" sort="1" header="Business" />
			<Attribute name="contactName" sort="2" header="Contact" />
			<Attribute name="contactStatus" header="Status" />
			<Attribute name="globalPartnerClassificationCode" header="Classification" />
			<Attribute name="globalPartnerClassificationCodeOther" header="Classification-Other" />
			<Attribute name="universalResourceIdentifier" header="Website" />
			<Attribute name="emailAddress" header="Email" />
			<Attribute name="globalBusinessIdentifier" header="DUNS" />
			<Attribute name="globalLocationIdentifier" header="DUNS+4" />
			<Attribute name="postOfficeBoxIdentifier" header="POBox" />
			<Attribute name="addressLine1" header="Street1" />
			<Attribute name="addressLine2" header="Street2" />
			<Attribute name="addressLine3" header="Street3" />
			<Attribute name="cityName" header="City" />
			<Attribute name="regionName" header="Region" />
			<Attribute name="nationalPostalCode" header="PostalCode" />
			<Attribute name="globalCountryCode" header="Country" />
			<Attribute name="telephoneNumber" header="PhoneMain" />
			<Attribute name="facsimileNumber" header="PhoneFax" />
		</Element>
	</Specification>
</Specifications>

