site de Fabien Torre


Source de acteurs.xsd

<?xml version="1.0" ?>
<xs:schema >
<!-- Les types -->
<xs:simpleType name="nompersonne">
<xs:restriction base="xs:string">
<xs:minLength value="5" />
<xs:maxLength value="25" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="idstring">
<xs:restriction base="xs:string">
<xs:maxLength value="8" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="adresseweb">
<xs:restriction base="xs:string">
<xs:pattern value="http://.+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="nomfichier">
<xs:restriction base="xs:string">
<xs:pattern value="\w+\.\w{3}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="montypedate">
<xs:restriction base="xs:string">
<xs:pattern value="\d\d? \w+ \d{4}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="mot">
<xs:restriction base="xs:string">
<xs:pattern value="\S+" />
</xs:restriction>
</xs:simpleType>
<!-- Les éléments -->
<xs:element name="annee" type="xs:gYear" />
<xs:element name="realisateur" type="nompersonne" />
<xs:element name="nom" type="nompersonne" />
<xs:element name="prenom" type="nompersonne" />
<xs:element name="naissance" type="montypedate" />
<xs:element name="nationalite" type="mot" />
<xs:element name="film">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="30" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="refacteur">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="nompersonne">
<xs:attribute name="code" type="idstring" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="p">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="refacteur" />
<xs:element ref="film" />
<xs:element ref="realisateur" />
<xs:element ref="annee" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="biographie">
<xs:complexType>
<xs:sequence>
<xs:element ref="p" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="site">
<xs:complexType>
<xs:attribute name="url" type="adresseweb" />
</xs:complexType>
</xs:element>
<xs:element name="photo">
<xs:complexType>
<xs:attribute name="source" type="nomfichier" />
<xs:attribute name="alt" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="acteur">
<xs:complexType>
<xs:sequence>
<xs:element ref="prenom" />
<xs:element ref="nom" />
<xs:element ref="naissance" />
<xs:element ref="nationalite" />
<xs:element ref="photo" minOccurs="0" />
<xs:element ref="site" minOccurs="0" />
<xs:element ref="biographie" minOccurs="0" />
</xs:sequence>
<xs:attribute name="id" type="idstring" />
</xs:complexType>
</xs:element>
<!-- le document et les contraintes de clef -->
<xs:element name="liste_acteurs">
<xs:complexType>
<xs:sequence>
<xs:element ref="acteur" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:key name="clefacteur">
<xs:selector xpath="acteur" />
<xs:field xpath="@id" />
</xs:key>
<xs:keyref name="refclefacteur" refer="clefacteur">
<xs:selector xpath="acteur/biographie/p/refacteur" />
<xs:field xpath="@code" />
</xs:keyref>
</xs:element>
</xs:schema>
Fabien Torre Valid HTML5! Valid CSS!
site de Fabien Torre, université de Lille