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

Valider XML Discussion :

[XSD] Les any


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 148
    Points
    148
    Par défaut [XSD] Les any
    Bonjour j'ai un probleme avec des definitions d'elements any. J'avais jamais fait de shema avant lundi donc j'ai un peut de la misere a comprendre tout le fonctionnement. Enfin, si vous pourriez m'aider ca permetterais d'avancer dans mon stage...

    Donc voici les fichiers en questions:

    Tout dabord mes schema:
    /xsd/common/common.xsd
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema targetNamespace="xml/xsd/common"
            xmlns="xml/xsd/common"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     
        <!-- TYPES -->
        <xsd:simpleType name="administrativeUnit">
            <xsd:restriction base="xsd:token" />
        </xsd:simpleType>
     ...    
        <xsd:complexType name="form">
            <xsd:sequence>
                <xsd:element name="header" type="section" />
                <xsd:element name="body" type="section" />
                <xsd:element name="custom" type="section" minOccurs="0" 
                        maxOccurs="1" />
            </xsd:sequence>
            <xsd:attribute name="version" type="version"  use="required" />
            <xsd:attribute name="customVersion" type="version" />
        </xsd:complexType>
     
        <xsd:simpleType name="name">
            <xsd:restriction base="xsd:token">
                <xsd:pattern value="[\p{L}\p{Zs}\-]{1,}" />
            </xsd:restriction>
        </xsd:simpleType>
    ...
        <xsd:complexType name="section">
            <xsd:sequence>
                <xsd:any minOccurs="0" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:complexType>
    ...
        <xsd:simpleType name="version">
            <xsd:restriction base="xsd:token">
                <xsd:pattern value="(\d+\.){0,3}\d+" />
            </xsd:restriction>
        </xsd:simpleType>
    </xsd:schema>
    /xsd/lscd/common/common.xsd
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema targetNamespace="xml/xsd/lscd/common"
            xmlns="xml/xsd/lscd/common"
            xmlns:com="xml/xsd/common"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <xsd:import namespace="xml/xsd/common" 
                schemaLocation="../../common/common.xsd" />
     
        <!-- TYPES -->
        <xsd:complexType name="formHeader">
            <xsd:sequence>
                <xsd:element name="entityName" type="com:entity" />
    	        <xsd:element name="contactFirstName" type="com:name" />
                <xsd:element name="contactLastName" type="com:name" />
                <xsd:element name="contactTelephone"
                        type="com:telephoneWithExtension" />
                <xsd:element name="contactAdministrativeUnit" 
                        type="com:administrativeUnit" />
                <xsd:element name="contactEmail" type="com:email" />
                <xsd:element name="submitDate" type="xsd:dateTime" />
            </xsd:sequence>
        </xsd:complexType>
     
        <!-- SCHEMA -->
        <xsd:element name="header" type="com:form">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="header" type="formHeader" />
                    <xsd:element name="body" type="com:section" />
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
    </xsd:schema>
    Et un petit document test:
    /xml/lscd/common/common.xml
    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
    17
     
    <?xml version="1.0" encoding="UTF-8"?>
    <lscd:form version="0.0.0.1"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:lscd="xml/xsd/lscd/common"
            xsi:schemaLocation=
                    "xml/xsd/lscd/common ../../../xsd/lscd/common/lscd.xsd">
        <header>
            <entityName>123/XYZ</entityName>
            <contactFirstName>Ablert</contactFirstName>
            <contactLastName>Moustachu</contactLastName>
            <contactAdministrativeUnit>blah</contactAdministrativeUnit>
            <contactTelephone>(418) 852-9630</contactTelephone>
            <submitDate>2006-07-14T14:22:24</submitDate>
        </header>
        <body />
    </lscd:form>
    Donc le probleme c'est que lorsque je verifie mon document je recoit un message d'erreur (par un validateur perso en java) du type:
    "src-element.3: Element 'header' has both a 'type' attribute and a 'anonymous type' child. Only one of these is allowed for an element."

    En attendant je continue de chercher et j'attend avec impatience des repones

    Merci!

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    tu spécifie un type com:form (avec l'attribut) pour ta balise header, et en plus, tu spécifies un type avec complexType.

    Il te faut choisir l'un ou l'autre
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre habitué Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 148
    Points
    148
    Par défaut
    Je m'avais meler en fesant mon code en fait ce que je voulais faire cetait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        <xsd:element name="form" type="com:form">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="header" type="formHeader" />
                    <xsd:element name="body" type="com:section" />
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
    Mais je continue a avoir le message d'erreur "src-element.3: Element 'form' has both a 'type' attribute and a 'anonymous type' child. Only one of these is allowed for an element."

    Mais je crois comprendre que tu dis qu'un element avec un type ne peux avoir un type anonyme (ce que dit le message en fait).

    Mais alors comment proceder? En fait je veux faire un document global et des documents globaux specifiques qui utilise les regles etablient par le global mais en plus qu'il en precise! Or cela ce fait-il?

  4. #4
    Membre habitué Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 148
    Points
    148
    Par défaut
    Au fond quand on y pense mon but c'est comme de dire que j'ai 3 any avec des noms predetermines... c'est possible ca?

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Le problème, c'est que tu ne peux donner qu'un seul type pour un élément donné...

    alors soit tu veux un choice, soit autre chose... mais dans tous les cas il te faut l'exprimer (et l'expliquer) différement
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  6. #6
    Membre habitué Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 148
    Points
    148
    Par défaut
    D'accord j'opte pour la version ou je dois expliquer differamment ma problematique

    Dans mon explication nous trouverons 3 fichiers distincts avec des roles distintcs. Ces trois documents se nommes: SchemaGlobal, SchemaGlobalSpecifique, DocumentSpecifique. Ces trois documents, comme je le disais on 3 roles.
    SchemaGlobal:
    Indentifie globalement certains types de donnes tres globalement.
    SchemaGlobalSpecifique:
    Identifie certaines proprietes global specifique a une categorie de documents et affute certains types declares dans le SchemaGlobal
    DocumentSpecifique:
    Document contenant des elements du SchemaGlobalSpecifique
    SchemaGlobal
    Le schema global declare une architecture definit avec quelques elements qui laissent place a des elements inconnus (les ?).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <F>
        <H>
            <?><? />
        </H>
        <B>
            <?><? />
        </B>
    </F>
    SchemaGlobalSpecifique
    Le schema global specifique vient preciser ce que doivent etres les deux balises "?" et le plus important les imposes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <F>
        <H>
            <X>[doit contenir des chiffres]<X />
        </H>
        <B>
            <Y>[doit contenir des lettres]<Y />
        </B>
    </F>
    DocumentSpecifique
    Le document specifique vient tout simplement utiliser le schema global specifique et respecter ses regles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <F>
        <H>
            <X>123<X />
        </H>
        <B>
            <Y>abc<Y />
        </B>
    </F>
    Donc mes questions sont:

    1. Est-il possible de faire ca avec des schema xml?
    2. Si cela est possible comment (et une petit exemple pour expliquer vos propos car je commence tout juste avec les schemas)?

    J'espere avoir ete plus clair cette fois ci

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

Discussions similaires

  1. [XSD] Equivalent du <choice> pour les attribut
    Par BigOne55 dans le forum Valider
    Réponses: 6
    Dernier message: 14/03/2014, 19h24
  2. [XSD] Les attributs
    Par source of energy dans le forum Valider
    Réponses: 2
    Dernier message: 25/01/2010, 14h29
  3. Réponses: 3
    Dernier message: 08/12/2005, 10h38
  4. [XSD] gerer les processing-instruction ?
    Par linuxludo dans le forum Valider
    Réponses: 4
    Dernier message: 24/11/2005, 17h56
  5. Réponses: 3
    Dernier message: 28/04/2005, 16h56

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