Definitive XML Schema
Priscilla Walmsley (pwalmsley@datypic.com)
ISBN: 0130655678
1st edition, , Prentice Hall PTR.
Chapter 18: Redefining schema components
Book examples
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:simpleType name="DressSizeType"> <xsd:restriction base="xsd:integer"/> </xsd:simpleType> <xsd:element name="size" type="DressSizeType"/> <xsd:element name="color" type="xsd:string"/> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.org/prod" targetNamespace="http://example.org/prod"> <xsd:redefine schemaLocation="prod1.xsd"> <xsd:simpleType name="DressSizeType"> <xsd:restriction base="DressSizeType"> <xsd:minInclusive value="2"/> <xsd:maxInclusive value="16"/> </xsd:restriction> </xsd:simpleType> </xsd:redefine> <xsd:element name="newSize" type="DressSizeType"/> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:simpleType name="DressSizeType"> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="0"/> <xsd:maxInclusive value="18"/> </xsd:restriction> </xsd:simpleType> <xsd:element name="size" type="DressSizeType"/> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:redefine schemaLocation="prod1.xsd"> <xsd:simpleType name="DressSizeType"> <xsd:restriction base="DressSizeType"> <xsd:minInclusive value="2"/> </xsd:restriction> </xsd:simpleType> </xsd:redefine> <xsd:element name="newSize" type="DressSizeType"/> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="ProductType"> <xsd:sequence> <xsd:element name="number" type="ProdNumType"/> <xsd:element name="name" type="xsd:string"/> <xsd:element name="size" type="SizeType"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:redefine schemaLocation="prod1.xsd"> <xsd:complexType name="ProductType"> <xsd:complexContent> <xsd:extension base="ProductType"> <xsd:sequence> <xsd:element name="color" type="ColorType"/> </xsd:sequence> <xsd:attribute name="effDate" type="xsd:date"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:redefine> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:group name="DescriptionGroup"> <xsd:sequence> <xsd:element name="description" type="xsd:string"/> <xsd:element name="comment" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:group> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:redefine schemaLocation="prod1.xsd"> <xsd:group name="DescriptionGroup"> <xsd:sequence> <xsd:element name="description" type="xsd:string"/> </xsd:sequence> </xsd:group> </xsd:redefine> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:group name="DescriptionGroup"> <xsd:sequence> <xsd:element name="description" type="xsd:string"/> <xsd:element name="comment" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:group> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:redefine schemaLocation="prod1.xsd"> <xsd:group name="DescriptionGroup"> <xsd:sequence> <xsd:group ref="DescriptionGroup"/> <xsd:element name="notes" type="xsd:string"/> </xsd:sequence> </xsd:group> </xsd:redefine> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:attributeGroup name="IdentifierGroup"> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="version" type="xsd:decimal"/> <xsd:attribute ref="xml:lang"/> </xsd:attributeGroup> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:redefine schemaLocation="prod1.xsd"> <xsd:attributeGroup name="IdentifierGroup"> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="version" type="xsd:integer"/> </xsd:attributeGroup> </xsd:redefine> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/> <xsd:attributeGroup name="IdentifierGroup"> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="version" type="xsd:decimal"/> <xsd:attribute ref="xml:lang"/> </xsd:attributeGroup> </xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:redefine schemaLocation="prod1.xsd"> <xsd:attributeGroup name="IdentifierGroup"> <xsd:attributeGroup ref="IdentifierGroup"/> <xsd:attribute name="effDate" type="xsd:date"/> </xsd:attributeGroup> </xsd:redefine> </xsd:schema>