site de Fabien Torre


Source de sujets-1.xsd

<?xml version="1.0" ?>
<!-- -*- coding: utf-8 -*- -->
<xs:schema >
<!-- Les types simples -->
<xs:simpleType name="TexteCourt">
<xs:restriction base="xs:string">
<xs:minLength value="2" />
<xs:maxLength value="110" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="idstring">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="30" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="adresseurl">
<xs:restriction base="xs:string">
<xs:maxLength value="120" />
<xs:pattern value="http://.*" />
</xs:restriction>
</xs:simpleType>
<!-- les éléments principaux -->
<xs:element name="url">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="TexteCourt">
<xs:attribute name="href" type="adresseurl" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="p">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="em" type="xs:string" />
<xs:element name="strong" type="xs:string" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="description">
<xs:complexType>
<xs:sequence>
<xs:element ref="p" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sujet">
<xs:complexType>
<xs:sequence>
<xs:element ref="description" minOccurs="0" />
<xs:element ref="url" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="id" type="idstring" use="required" />
<xs:attribute name="pere" type="idstring" use="optional" />
<xs:attribute name="titre" type="TexteCourt" use="required" />
</xs:complexType>
</xs:element>
<!-- le document principal -->
<xs:element name="sujets">
<xs:complexType>
<xs:sequence>
<xs:element ref="sujet" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:key name="clefsujets">
<xs:selector xpath="sujet" />
<xs:field xpath="@id" />
</xs:key>
<xs:unique name="uniquesujets">
<xs:selector xpath="sujet" />
<xs:field xpath="@titre" />
</xs:unique>
<xs:keyref name="refsujets" refer="clefsujets">
<xs:selector xpath="sujet" />
<xs:field xpath="@pere" />
</xs:keyref>
</xs:element>
</xs:schema>
Fabien Torre Valid HTML5! Valid CSS!
site de Fabien Torre, université de Lille