IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Question débutant XML (element, complexType, schema XML)


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Cosmonaute
    Inscrit en
    Mars 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Cosmonaute

    Informations forums :
    Inscription : Mars 2017
    Messages : 21
    Par défaut Question débutant XML (element, complexType, schema XML)
    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

  2. #2
    Membre averti
    Homme Profil pro
    Cosmonaute
    Inscrit en
    Mars 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Cosmonaute

    Informations forums :
    Inscription : Mars 2017
    Messages : 21
    Par défaut
    Je me réponds, soyons fou !

    quand dans un livre, un tuto, on croise ceci:
    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>
    il s'agit uniquement de la déclaration d'un type complexe. Et ce type peut être réutilisé dans un élément en y faisant référence à l'aide de type="plan".

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xs:element name="ma_balise" type="plan"/>
    ou encore (ici ne pas confondre le nom de l'élément avec le nom du type que l'on a déclaré)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xs:element name="plan" type="plan"/>
    Bye.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    oui. Pour info il marche pas ton lien. On peut pas savoir qu'est-ce que tu as vu.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Homme Profil pro
    Cosmonaute
    Inscrit en
    Mars 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Cosmonaute

    Informations forums :
    Inscription : Mars 2017
    Messages : 21
    Par défaut
    Merci.

    Pour le lien, il s'agit d'un cours archivé, dont j'ai accès, mais pas vous apparemment !

    Je viens de le changer avec un autre, celui-là accessible normalement.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    D'accord.

    Moui effectivement ce lien se permet d'éluder un peu, par exemple le schéma n'est pas fourni en entier, il manque <xs:schema> et tout ça, considérant sans doute que le lecteur a suffisamment pris l'habitude pour comprendre.

    Mais bon, vous étiez arrivé à la bonne conclusion.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Ce que je puisse ajouter c'est que le contenu de la référence d'un lien
    https://tutoriel-xml.rolandl.fr/part...plus-loin.html
    comme donné par op ...
    Pour illustrer l’utilisation de la restriction length, prenons par exemple une empreinte SHA1. Pour faire simple, une empreinte SHA1 est un nombre hexadécimal composé de 40 caractères :
    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>
    ... est tellement fausse que je pense devoir souligner, et particulièrement pour une page voulue être un tuto pour les moins informés.

    D'abord, la construction de xsd:simpleTyle comme enfant direct d'un xsd:complexType est inacceptable et incorrecte.

    Et puis, pour le type de donnée xsd:hexBinary, ce qui est compté avec xsd:length est le nombre d'octets, pas le nombre de caractères hexadécimaux. Par conséquence, l'attribut valuue="40" est absolument faux, on n'arrive à compter que 20 octets.

    La version correcte devrait apparaitre comme ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsd:simpleType name="sha1">
      <xsd:restriction base="xsd:hexBinary">
        <xsd:length value="20" />
      </xsd:restriction>
    </xsd:simpleType>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <!-- valide -->
    <sha1>edf7a6029d6bdfb68447677a1d76639725f795f1</sha1>
     
    <!-- valide -->
    <sha1>a94a8fe5ccb19ba61c4c0873d391e987982fbbd3</sha1>
     
    <!-- invalide -->
    <sha1>test</sha1>
    Voilà !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [débutant] xml-xsl firefox : marche pas ?
    Par p-s dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 22/09/2005, 16h54
  2. [débutant] XML ou expressions régulières ?
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 28/10/2004, 16h17
  3. [Struts][struts-config.xml] question sur l element action
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 3
    Dernier message: 08/10/2004, 16h25
  4. [débutant] XML<=>MDB (Access)
    Par francki51 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 30/05/2004, 18h37
  5. Débutant XML
    Par viny dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 25/07/2002, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo