Exercice 3.3

1
<!-- Type pour les listes d'entiers -->
2
	<xsd:simpleType name="IntList">
3
 	 <xsd:list itemType="xsd:integer"/>
4
	</xsd:simpleType>
5
<!-- Type pour les listes de 5 entiers -->
6
	<xsd:simpleType name="telType">
7
  		<xsd:restriction base="IntList">
8
   		 	<xsd:length value="5"/>
9
 		 </xsd:restriction>
10
	</xsd:simpleType>

instanciation : <telephone>01 23 45 67 89</telephone>

2ème solution : on considère un numéro de téléphone composé par exemple de 10 chiffre. (exemple : 0123456789 )

nombre de chiffres sur le numéro de téléphone :

1
<xs:simpleType name="telType">
2
  		<xs:restriction base="xs:integer">
3
    			<xs:totalDigits value="10" />
4
 		 </xs:restriction>
5
	</xs:simpleType>

instanciation : <telephone>0123456789</telephone>

  • emailType : de type pattern

1
<xsd:simpleType name="emailType">
2
	<xsd:restriction base="xsd:string">
3
		<xsd:pattern value="(.)+@(.)+"/> 
4
	</xsd:restriction>
5
</xsd:simpleType> 

Donc contactType deviendra :

1
<xsd:complexType name="contactType">
2
<xsd:sequence>
3
	<xsd:element name="nom"    type="xsd:string"/>
4
	<xsd:element name="prenom" type="xsd:string"/>
5
	<xsd:element name="telephone" type="telType" />
6
	<xsd:element name="email" type="emailType" maxoccurs="unbounded"/>
7
</xsd:sequence>
8
</xsd:complexType>