<!--************************************************************-->
<!--  pstc_spml2_DSML.xsd                                       -->
<!--                                                            -->
<!--  Draft schema for the DSMLv2 Profile for SPML v2           -->
<!--                                                            -->
<!--  Editors:                                                  -->
<!--    Jeff Bohren (jbohren@opennetwork.com)                   -->
<!--                                                            -->
<!--                                                            -->
<!-- Copyright (C) The Organization for the Advancement of      -->
<!-- Structured Information Standards [OASIS] 2004. All Rights  -->
<!-- Reserved.                                                  -->
<!--************************************************************-->

<xsd:schema 	targetNamespace="urn:oasis:names:tc:SPML:2:0:DSML" 
		xmlns:spmldsml="urn:oasis:names:tc:SPML:2:0:DSML"
        	xmlns:spml="urn:oasis:names:tc:SPML:2:0"
		xmlns:xsd="http://www.w3.org/2001/XMLSchema"
		xmlns="http://www.w3.org/2001/XMLSchema"
		elementFormDefault="qualified"> 

	<import namespace="urn:oasis:names:tc:SPML:2:0" 
            schemaLocation="pstc_spmlv2_core.xsd"/>

 	<xsd:complexType name="AttributeDefinitionType">
 		<complexContent>
			<extension base="spml:ExtensibleType">		
				<xsd:attribute name="description" type="xsd:string" use="optional"/>
				<xsd:attribute name="multivalued" type="xsd:boolean" use="optional" default="false"/>
				<xsd:attribute name="type" type="xsd:string" use="optional" default="xsd:string"/>
				<xsd:attribute name="name" type="xsd:string" use="required"/>
			</extension>
		</complexContent>				
	</xsd:complexType>

 	<xsd:complexType name="AttributeDefinitionReferenceType">
 		<complexContent>
			<extension base="spml:ExtensibleType">		
				<xsd:attribute name="schema" type="anyURI" use="optional" />
				<xsd:attribute name="required" type="xsd:boolean" use="optional" default="false"/>
				<xsd:attribute name="name" type="xsd:string" use="required"/>
			</extension>
		</complexContent>				
	</xsd:complexType>

	<xsd:complexType name="AttributeDefinitionReferencesType">
 		<complexContent>
			<extension base="spml:ExtensibleType">		
				<xsd:sequence>
					<xsd:element name="attributeDefinitionReference" type="spmldsml:AttributeDefinitionReferenceType" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</extension>
		</complexContent>				
	</xsd:complexType>  

 	<xsd:complexType name="ObjectClassDefinitionReferenceType">
 		<complexContent>
			<extension base="spml:ExtensibleType">		
				<xsd:attribute name="schemaref" type="anyURI" use="optional" />
				<xsd:attribute name="name" type="xsd:string" use="required"/>
			</extension>
		</complexContent>				
	</xsd:complexType>

	<xsd:complexType name="ObjectClassDefinitionReferencesType">
 		<complexContent>
			<extension base="spml:ExtensibleType">		
				<xsd:sequence>
					<xsd:element name="objectClassDefinitionReference" type="spmldsml:ObjectClassDefinitionReferenceType" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</extension>
		</complexContent>				
	</xsd:complexType>  

 	<xsd:complexType name="ObjectClassDefinitionType">
 		<complexContent>
			<extension base="spml:ExtensibleType">		
				<xsd:sequence>
					<xsd:element name="memberAttributes" type="spmldsml:AttributeDefinitionReferencesType" minOccurs="0" maxOccurs="1"/>
					<xsd:element name="superiorClasses" type="spmldsml:ObjectClassDefinitionReferencesType" minOccurs="0" maxOccurs="1"/>
				</xsd:sequence>
				<xsd:attribute name="name" type="xsd:string" use="required"/>
				<xsd:attribute name="description" type="xsd:string" use="optional"/>
			</extension>
		</complexContent>				
	</xsd:complexType>

 	<xsd:complexType name="SchemaType">
 		<complexContent>
			<extension base="spml:ExtensibleType">		
				<xsd:sequence>
					<xsd:element name="objectClassDefinition" type="spmldsml:ObjectClassDefinitionType" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element name="attributeDefinition" type="spmldsml:AttributeDefinitionType" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>		
			</extension>
		</complexContent>				
	</xsd:complexType>

	<xsd:element name="schema" type="spmldsml:SchemaType" />

</xsd:schema>

