Schema Name: ex.xsd
Target Namespace: http://niem.gov/niem/external/iso-10303-step/2/ex/dhs-gmo/1.0.0
Documentation:
DHS Changes: 2006-10-05 Profiled target xmlns:ex namespace; was urn:iso.org:standard:10303:part(28):version(2):xmlschema:common
Collapse XSD Schema Code:

<xs:schema 
  targetNamespace="http://niem.gov/niem/external/iso-10303-step/2/ex/dhs-gmo/1.0.0"
  xmlns:ex="http://niem.gov/niem/external/iso-10303-step/2/ex/dhs-gmo/1.0.0"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:annotation>
	<xs:documentation>
		DHS Changes:
			2006-10-05 Profiled target xmlns:ex namespace; was urn:iso.org:standard:10303:part(28):version(2):xmlschema:common 	
		</xs:documentation>
</xs:annotation>
<!-- INCLUDE the configuration schema holding the P28 configuration schema -->

	<xs:include schemaLocation="configuration.xsd"/>

	
<!-- DEFINE the P28 root element -->

	<xs:element name="iso_10303_28">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ex:iso_10303_28_header" minOccurs="0"/>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="ex:express"/>
					<xs:element ref="ex:schema_population"/>
					<xs:element ref="ex:configuration"/>
					<xs:element ref="ex:uos"/>
				</xs:choice>
			</xs:sequence>
			<xs:attribute name="version" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
	
	
<!-- DEFINE the P28 schema population and express elements -->

	<xs:element name="schema_population">
		<xs:complexType>
			<xs:attribute name="governing_schema" type="xs:IDREF" use="required"/>
			<xs:attribute name="governed_sections" type="xs:IDREFS" use="optional"/>
			<xs:attribute name="determination_method" type="xs:normalizedString" default="section_boundary"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="express" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute name="schemaLocation" type="ex:Seq-anyURI" use="optional"/>
					<xs:attribute name="id" type="xs:ID" use="required"/>
					<xs:attribute name="schema_identifier" type="xs:normalizedString" use="optional"/>
					<xs:attribute name="schema_name" type="xs:normalizedString" use="optional"/>
					<xs:attribute name="schema_version" type="xs:normalizedString" use="optional"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>


<!-- DEFINE the P28 header element -->

	<xs:element name="iso_10303_28_header">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="name" type="xs:anyURI"/>
				<xs:element name="time_stamp" type="xs:dateTime"/>
				<xs:element name="author" type="xs:string"/>
				<xs:element name="organization" type="xs:string"/>
				<xs:element name="preprocessor_version" type="xs:string"/>
				<xs:element name="originating_system" type="xs:string"/>
				<xs:element name="authorization" type="xs:string"/>
				<xs:element name="documentation" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>


<!-- DEFINE the P28 base element UOS -->

	<xs:element name="uos" type="ex:uos"/>
	
	<xs:complexType name="uos">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:any namespace="##any"/>
		</xs:choice>
		<xs:attribute name="id" type="xs:ID" use="required"/>
		<xs:attribute name="express" type="ex:Seq-anyURI" use="optional"/>
		<xs:attribute name="configuration" type="ex:Seq-anyURI" use="optional"/>
		<xs:attribute name="schemaLocation" type="ex:Seq-anyURI" use="optional"/>
		<xs:attribute name="edo" type="xs:anyURI" use="optional"/>
		<xs:attribute name="description" type="xs:string" use="optional"/>
	</xs:complexType>


<!--  EX ENTITY DEFINTIONS and DECLARATIONS -->

	<xs:element name="Entity" type="ex:Entity" abstract="true"/>
	
	<xs:complexType name="Entity" abstract="true">
		<xs:attribute name="href" type="xs:anyURI" use="optional"/>
		<xs:attribute name="ref" type="xs:IDREF" use="optional"/>
		<xs:attribute name="proxy" type="xs:IDREF" use="optional"/>
		<xs:attribute name="edo" type="xs:anyURI" use="optional"/>
		<xs:attributeGroup ref="ex:instanceAttributes"/>
	</xs:complexType>


<!--  GLOBAL ATTRIBUTE DECLARATIONS  -->

	<xs:attribute name="arraySize">
		<xs:simpleType>
			<xs:restriction>
				<xs:simpleType>
					<xs:list itemType="xs:integer"/>
				</xs:simpleType>
				<xs:minLength value="1"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	
	<xs:attribute name="itemType" type="xs:QName"/>

	<xs:attribute name="cType">
		<xs:simpleType>
			<xs:list itemType="ex:aggregateType"/>
		</xs:simpleType>
	</xs:attribute>
	
	<xs:attribute name="attributeType">
		<xs:simpleType>
			<xs:restriction base="xs:normalizedString">
				<xs:enumeration value="explicit"/>
				<xs:enumeration value="inverse"/>
				<xs:enumeration value="derived"/>
				<xs:enumeration value="renamed"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>


<!--  GLOBAL ATTRIBUTE GROUP DECLARATIONS  -->

	<xs:attributeGroup name="instanceAttributes">
		<xs:attribute name="id" type="xs:ID" use="optional"/>
		<xs:attribute name="path" type="xs:NMTOKENS" use="optional"/>
		<xs:attribute name="pos" use="optional">
			<xs:simpleType>
				<xs:restriction>
					<xs:simpleType>
						<xs:list itemType="xs:integer"/>
					</xs:simpleType>
					<xs:minLength value="1"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>


<!--  GLOBAL SIMPLE TYPE  DECLARATIONS  -->

	<xs:simpleType name="aggregateType">
		<xs:restriction base="xs:normalizedString">
			<xs:enumeration value="array"/>
			<xs:enumeration value="list"/>
			<xs:enumeration value="set"/>
			<xs:enumeration value="bag"/>
			<xs:enumeration value="array-unique"/>
			<xs:enumeration value="array-optional"/>
			<xs:enumeration value="array-optional-unique"/>
			<xs:enumeration value="list-unique"/>
		</xs:restriction>
	</xs:simpleType>


<!-- WRAPPERS (OR INSTANCE ELEMENTS) FOR ATOMIC SIMPLE TYPES  -->

	<xs:element name="base64Binary-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ex:base64Binary">
					<xs:attributeGroup ref="ex:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	
	<xs:complexType name="base64Binary">
		<xs:simpleContent>
			<xs:extension base="xs:base64Binary">
				<xs:attribute name="extraBits" type="xs:integer" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	
	<xs:element name="hexBinary-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ex:hexBinary">
					<xs:attributeGroup ref="ex:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	
	<xs:complexType name="hexBinary">
		<xs:simpleContent>
			<xs:extension base="xs:hexBinary">
				<xs:attribute name="extraBits" type="xs:integer" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	
	<xs:element name="logical-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ex:logical">
					<xs:attributeGroup ref="ex:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	
	<xs:simpleType name="logical">
		<xs:restriction base="xs:string">
			<xs:enumeration value="false"/>
			<xs:enumeration value="true"/>
			<xs:enumeration value="unknown"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:element name="boolean-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:boolean">
					<xs:attributeGroup ref="ex:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="decimal-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:decimal">
					<xs:attributeGroup ref="ex:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="double-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:double">
					<xs:attributeGroup ref="ex:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="long-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:long">
					<xs:attributeGroup ref="ex:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="integer-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:integer">
					<xs:attributeGroup ref="ex:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="string-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:normalizedString">
					<xs:attributeGroup ref="ex:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>

</xs:schema>
Collapse Attributes:
Collapse AttributeGroups:
Collapse ComplexTypes:
Collapse Elements:
Collapse SimpleTypes: