mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-01-19 10:03:34 +03:00
f2a1283564
* xmlregexp.c xmlschemas.c: more XML Schemas fixes based on Eric van der Vlist examples * result/schemas/vdv-first4* test/schemas/vdv-first4*: added regression tests * doc/examples/Makefile.am doc/examples/index.py: do not regenerate the index on make all target, but only on make rebuild to avoid troubles. Daniel
151 lines
4.4 KiB
XML
Executable File
151 lines
4.4 KiB
XML
Executable File
<?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>
|