Bonjour,

Je débute avec XML, je viens d'apprendre il y a peu comment déclarer un élément de type complexe dans un schéma XML.

Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<xs:element name="plan">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="auteurs" type="xs:string"/>
      <xs:element name="chapitres" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
Je peux aussi déclarer globalement un type complexe (si je ne dis pas de bêtise) et l'utiliser dans la déclaration d'un élément:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<xs:complexType name="planType">
  <xs:sequence>
    <xs:element name="auteurs" type="xs:string"/>
    <xs:element name="chapitres" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
 
<xs:element name="plan" type="planType"/>
Question:
1) Est-ce que je peux aussi simplement déclarer le même élément - "plan" - directement comme ceci ? voir code juste dessous… (ici "plan" est un élément)
2) Ou bien est-ce sous-entendu que le type d'un élément fera référence à ce type "plan" ? (ici "plan" est un type) -> perso, je penche plus vers cette hypothèse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<xs:complexType name="plan">
  <xs:sequence>
    <xs:element name="auteurs" type="xs:string"/>
    <xs:element name="chapitres" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

Pourquoi je pose cette question ?

Je pose cette question car apparaît dans un cours cette manière d'écrire sans crier gare (et ça apparaît à nouveau ensuite plus loin…) comme ceci:
Lien (recherchez "sha1" dans la page…), et j'aimerais bien interpréter tout cela correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<xsd:complexType name="sha1">
  <xsd:simpleType>
    <xsd:restriction base="xsd:hexBinary">
      <xsd:length value="40" />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:complexType>
 
<!-- valide -->
<sha1>edf7a6029d6bdfb68447677a1d76639725f795f1</sha1>
 
<!-- valide -->
<sha1>a94a8fe5ccb19ba61c4c0873d391e987982fbbd3</sha1>
 
<!-- invalide -->
<sha1>test</sha1>
Merci