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 :

Forcer CDATA dans la XSD


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 77
    Par défaut Forcer CDATA dans la XSD
    Bonjour

    Je suis novice en xsd et j'aimerais que certains des éléments aient d'office le CDATA, mais je ne vois pas comment faire.

    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
     
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    	<xs:element name="Racine" type="RacineType"/>
    	<xs:simpleType name="ChaineCDATAType">
    		<xs:annotation>
    			<xs:documentation>chaine devant contenir CDATA et limitee a 20 chars</xs:documentation>
    		</xs:annotation>
    		<xs:restriction base="xs:string">
    			<xs:maxLength value="20"/>
    		</xs:restriction>
    	</xs:simpleType>
    	<xs:complexType name="RacineType">
    		<xs:sequence>
    			<xs:element name="Chaine1" type="ChaineCDATAType" minOccurs="0" maxOccurs="unbounded"/>
    			<xs:element name="Chaine2" type="ChaineCDATAType" minOccurs="0" maxOccurs="unbounded"/>
    			<xs:element name="NumberToFill" type="xs:integer" minOccurs="0"/>
    		</xs:sequence>
    		<xs:attribute name="type" type="xs:string"/>
    	</xs:complexType>
    </xs:schema>
    Je voudrai que le type ChaineCDATAType me génère d'office le <!CDATA[[. J'ai essayé avec un pattern ,mais ça me génère une erreur au niveau du '<'.

    Avez vous une idée ?

    D'avance merci.

    Iza

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    XSD (ou W3C XML Schema) est un langage de validation, il sert à valider une source XML par rapport à un schéma défini par le développeur, il ne modifie pas la source.

    ...ou alors tu te sers de ce schéma pour produire un document XML en utilisant un framework quelconque, et il faudrait être un peu plus précis.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 77
    Par défaut
    Bonjour

    Tu as fait la réponse ! En effet, je me sers de ce schéma en entrée (ce qui me permet de valider un flux XML) mais aussi en sortie, pour générer un flux XML à partir d'un CSV. J'utilise MAPFORCE pour info.
    Peut-être que je devrais utiliser autre chose pour la sortie, mais je n'y connais pas grand chose...

    As-tu une idée pour que je fasse ça simplement ?

    Merci.

  4. #4
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Je n'ai jamais utilisé Mapforce, donc à part te demander si tu as cherché dans les options je ne vais guère t'être d'une grande utilité...

    Par contre, quelle est la raison qui t'oblige à avoir des blocs CDATA en sortie ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 77
    Par défaut
    Je dois faire un flux commun en entrée d'une base de données. J'ai des flux XML (du vrai XML), des flux CSV et des faux XML (généré à la mano qui ont donc des caractères interdits dans les données).
    Histoire d'être tranquille, je veux encapsuler toutes les données que je reçois par des CDATA.
    Je comptais faire ça en C (beaucoup plus simple pour moi), mais je suis obligée d'utiliser des xsd ou xsl... des trucs que je ne maîtrise pas du tout.

    Voilà toute l'histoire ! Mais comme ça à l'air compliqué, je vais les convaincre qu'il n'y a pas mieux que le C !!!

Discussions similaires

  1. Forcer une classe dans un XSD
    Par thierryler dans le forum Services Web
    Réponses: 11
    Dernier message: 02/10/2014, 09h03
  2. [XSD] element optionnel dans le xsd
    Par barthelus76 dans le forum Valider
    Réponses: 1
    Dernier message: 03/01/2008, 10h50
  3. Problème CDATA dans balise XML
    Par charliejo dans le forum Dynamique
    Réponses: 4
    Dernier message: 12/01/2007, 12h04
  4. attribut nillable dans un xsd
    Par SGJ dans le forum Valider
    Réponses: 1
    Dernier message: 21/03/2006, 17h44
  5. forcer majuscules dans un where
    Par bobic dans le forum Oracle
    Réponses: 3
    Dernier message: 08/12/2005, 10h59

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