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 Discussion :

[Xerces 2.8] Récupérer le type défini dans le XSD


Sujet :

XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 7
    Par défaut [Xerces 2.8] Récupérer le type défini dans le XSD
    Bonjour ou bonsoir tout le monde,

    je cherche a récupérer le type d'une xsl:element présent dans le fichier xsd défini dans le fichier xml que je parse...

    j'aimerait donc récupérer xsl:string, .....

    le but est de créer le bon type dans mon programme ou plutôt d'effectuer la bonne conversion de type xsl <-> c++, une sorte de mapping de type...

    je pensais parser le fichier xsd comme un fichier xml mais ca ne marche pas...

    Merci d'avance de m'orienter vers le bout du tunnel, je trime !

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour et bienvenu,
    Citation Envoyé par sam824 Voir le message
    je pensais parser le fichier xsd comme un fichier xml mais ca ne marche pas...

    Quel est le problème que tu as avec cette méthode ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    parser->parse(XMLString::transcode("D:\\sgendre\\boulot\\monfichier.xsd"));
    doc = parser->getDocument();
    pNodeList = doc->getElementsByTagName(XMLString::transcode("monTag"));
    la liste reste vide...

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Euh, les éléments d'un XSD ne sont pas "monTag" mais xs:complexType, ou encore xs:element. "monTag" est la valeur de l'attribut name d'un xs:element globale ou d'une définition de type.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xs:complexType name="lot-gpr">

    pardon je me suis mal exprimé, je voulais dire "lot-gpr"

    histoire d'être plus clair
    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
    <xs:complexType name="departement">
    		<xs:complexContent>
    			<xs:restriction base=".....">
    				<xs:sequence>
    					<xs:element name="proprietesMetier" form="qualified" minOccurs="1">
    						<xs:complexType>
    							<xs:sequence>
    								<xs:element name="numDEP" type="xs:string"/>
    								<xs:element name="nomDEP" type="xs:string"/>
    								<xs:element name="methodeReleve" type="xs:string" minOccurs="0"/>
    								<xs:element name="niveauPrecision" type="xs:string" minOccurs="0"/>
    							</xs:sequence>
    						</xs:complexType>
    					</xs:element>
     
    .....
    mon but est toujours de recupérer les type xs:string

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Il me semble que getElementsByTagName retourne les éléments dont le nom est celui donné en paramètre. Pas les éléments dont l'attribut name est celui donné en paramètre.
    Je ne connais pas Dom par cœur, mais en reprenant ce que tu souhaites faire, cela devrait ressembler à quelque chose comme ça :
    -> getElementsByTagName("xs:element") pour récupérer les noeuds éléments.
    -> puis sur chaque élément, getAttribute("name") et getAttribute("type") pour avoir son type.

    Enfin, si l'objectif est de construire un ensemble de type à partir d'un XSD, j'aurais tendance à utiliser une analyse du XSD avec l'API SAX pour avoir un parcours linéaire un peu comme dans une compilation. Mais bon, c'est peut être une bêtise car je dis ça instinctivement sans avoir réfléchi plus que ça au problème.

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

Discussions similaires

  1. Récupérer le type enregistré dans un objet
    Par LaurentC33 dans le forum Langage
    Réponses: 13
    Dernier message: 10/07/2013, 10h21
  2. Réponses: 2
    Dernier message: 26/01/2012, 20h11
  3. Réponses: 7
    Dernier message: 11/08/2011, 19h29
  4. [MySQL] Récupérer les valeurs définies dans un champ ENUM
    Par Huntress dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/07/2010, 18h55
  5. Récupérer le titre défini dans \@title
    Par TimoP dans le forum Mise en forme
    Réponses: 0
    Dernier message: 06/11/2007, 15h29

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