123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- $Header: /home/cvsroot/w3c-xml-schema/user/examples/first-complex-types.xsd,v 1.1 2001/11/12 20:54:00 vdv Exp $ -->
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:simpleType name="string255">
- <xs:restriction base="xs:token">
- <xs:maxLength value="255"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="string32">
- <xs:restriction base="xs:token">
- <xs:maxLength value="32"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="isbn">
- <xs:restriction base="xs:unsignedLong">
- <xs:totalDigits value="10"/>
- <xs:pattern value="\d{10}"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="bookID">
- <xs:restriction base="xs:ID">
- <xs:pattern value="b\d{10}"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="supportedLanguages">
- <xs:restriction base="xs:language">
- <xs:enumeration value="en"/>
- <xs:enumeration value="es"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="date">
- <xs:restriction base="xs:date">
- <xs:pattern value="[^:Z]*"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:element name="name" type="string32"/>
- <xs:element name="qualification" type="string255"/>
- <xs:element name="born" type="date"/>
- <xs:element name="dead" type="date"/>
- <xs:element name="isbn" type="isbn"/>
-
- <xs:attribute name="id" type="xs:ID"/>
- <xs:attribute name="available" type="xs:boolean"/>
- <xs:attribute name="lang" type="supportedLanguages"/>
- <xs:complexType name="elementWithID">
- <xs:attribute ref="id"/>
- </xs:complexType>
- <xs:complexType name="bookTmp">
- <xs:complexContent>
- <xs:extension base="elementWithID">
- <xs:sequence>
- <xs:element ref="isbn"/>
- <xs:element ref="title"/>
- <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute ref="available"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:complexType name="personType">
- <xs:complexContent>
- <xs:extension base="elementWithID">
- <xs:sequence>
- <xs:element ref="name"/>
- <xs:element ref="born"/>
- <xs:element ref="dead" minOccurs="0"/>
- <xs:element ref="qualification" minOccurs="0"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:element name="title">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="string255">
- <xs:attribute ref="lang"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="library">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="book" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="book">
- <xs:complexType>
- <xs:complexContent>
- <xs:restriction base="bookTmp">
- <xs:sequence>
- <xs:element ref="isbn"/>
- <xs:element ref="title"/>
- <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="id" type="bookID"/>
- <xs:attribute ref="available"/>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="author">
- <xs:complexType>
- <xs:complexContent>
- <xs:restriction base="personType">
- <xs:sequence>
- <xs:element ref="name"/>
- <xs:element ref="born"/>
- <xs:element ref="dead" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute ref="id"/>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
-
-
- <xs:element name="character">
- <xs:complexType>
- <xs:complexContent>
- <xs:restriction base="personType">
- <xs:sequence>
- <xs:element ref="name"/>
- <xs:element ref="born"/>
- <xs:element ref="qualification"/>
- </xs:sequence>
- <xs:attribute ref="id"/>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
-
- </xs:schema>
|