Correlación de esquema XML de conjunto

<?xml version="1.0" encoding="UTF-8"?>
<!-- ***************************************************** {COPYRIGHT-TOP} ***
* Material bajo licencia - Propiedad de IBM
* Material restringido de IBM
*
* 5725-E59
*
* (C) Copyright IBM Corp. 2013  Reservados todos los derechos.
*
* Derechos restringidos a los usuarios del gobierno de EE.UU. -  El uso, duplicación o
* divulgación están restringidos por el GSA ADP Schedule Contract con IBM Corp.
********************************************************** {COPYRIGHT-END} -->
 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://www.ibm.com/xmlns/prod/InfoSphere/ReferenceDataManagement/MappingSet"  
	xmlns="http://www.ibm.com/xmlns/prod/InfoSphere/ReferenceDataManagement/MappingSet"
	attributeFormDefault="unqualified"
	elementFormDefault="unqualified" 
>
	<xs:element name="MappingSet">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="MappingSetProperties" type="SetPropertyType"/>

				<xs:element name="Mapping" type="MappingType" minOccurs="0"
					maxOccurs="unbounded" />
			</xs:sequence>
			<xs:attribute name="name" type="xs:string" use="required" />
		</xs:complexType>
	</xs:element>
	
	<xs:simpleType name="empty">
		<xs:restriction base="xs:string">
		<xs:maxLength value="0"/>
	</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="dateOrEmpty">
		<xs:union memberTypes="empty xs:dateTime"/>
	</xs:simpleType>

	<xs:complexType name="SetPropertyType">
		<xs:all>
			<xs:element name="SourceSet" type="xs:string" />
			<xs:element name="TargetSet" type="xs:string" />
			<xs:element name="Version" type="xs:string" />
			<xs:element name="SourceVersion" type="xs:string" />
			<xs:element name="TargetVersion" type="xs:string" />

			<!-- probablemente esto se convertirá en un tipo enumerado -->
			<xs:element name="State" type="xs:string" />
			
			<xs:element name="EffectiveDate" type="dateOrEmpty"	minOccurs="0" />
			<xs:element name="ExpiryDate" type="dateOrEmpty" minOccurs="0" />
			
			<xs:element name="Description" type="xs:string" minOccurs="0" />
			<xs:element name="Comments" type="xs:string" minOccurs="0" />
		</xs:all>
	</xs:complexType>


	<xs:complexType name="MappingGroupType">
		<xs:sequence>
			<xs:element name="Mapping" type="MappingType" minOccurs="1"
				maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="MappingType">
		<xs:all>
			<xs:element name="Source" type="ValueType" />
			<xs:element name="Target" type="ValueType" />
			<xs:element name="Properties" type="PropertyContainer"
				minOccurs="0" />
		</xs:all>
		<xs:attribute name="fromTime" type="xs:dateTime" use="optional" />
		<xs:attribute name="toTime" type="xs:dateTime" use="optional" />
	</xs:complexType>

	<xs:complexType name="ValueType">
		<xs:sequence>
			<xs:element name="Key" type="KeyType" minOccurs="0"
				maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="name" type="xs:string" />
	</xs:complexType>
	
	<xs:complexType name="KeyType" mixed="true">
		<xs:sequence>
			<xs:element name="Key" type="KeyType"
				minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="name" type="xs:string" />
	</xs:complexType>
	
	<xs:complexType name="GeneralDateTimeType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="name" type="xs:string" use="optional" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:simpleType name="StringTypeAttribute">
		<xs:restriction base="xs:string">
			<xs:enumeration value="String" />
			<xs:enumeration value="string" />
			<xs:enumeration value="Text" />
			<xs:enumeration value="text" />
			<xs:enumeration value="Integer" />
			<xs:enumeration value="integer" />
			<xs:enumeration value="Decimal" />
			<xs:enumeration value="decimal" />
			<xs:enumeration value="Date" />
			<xs:enumeration value="date" />
			<xs:enumeration value="TimeStamp" />
			<xs:enumeration value="timestamp" />
			<xs:enumeration value="Reference DataSet" />
			<xs:enumeration value="reference dataset" />
			<xs:enumeration value="Boolean" />
			<xs:enumeration value="boolean" />
			<xs:enumeration value="URL" />
			<xs:enumeration value="url" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="PropertyType">
		<xs:simpleContent>
			<xs:extension base="xs:string">

				<!-- Nombre de esta propiedad -->
				<xs:attribute name="name" type="xs:string" use="required" />

				<!-- nombre de tipo para esta propiedad -->
				<xs:attribute name="type" type="StringTypeAttribute"
					use="optional" />

				<!-- código de propiedad cuando la propiedad es un tipo Ref DataSet -->
				<xs:attribute name="code" type="xs:string" use="optional" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

	<xs:complexType name="PropertyContainer">
		<xs:sequence>
			<xs:element name="Property" type="PropertyType" minOccurs="0"
				maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>


</xs:schema>


Última actualización 24 Oct 2017