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 :

créer un xsd pour un xml donné


Sujet :

XML/XSL et SOAP

  1. #1
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 67
    Points : 48
    Points
    48
    Par défaut créer un xsd pour un xml donné
    Bonjour,
    je souhaite créer le xsd correspondant au xml suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <serviceproxy:service interface="com.bnppf.ssc.imb.ee.hello.GreetingInterface">
    		<mappingMethod methodName="a" jrfMethodId="b"/>
    		<mappingMethod methodName="c" jrfMethodId="d"/>
    	</serviceproxy:service>
    .


    J'ai bien essayé avec
    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
     
    <xsd:schema xmlns="http://..../schema/serviceproxy" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://..../schema/serviceproxy"
    	elementFormDefault="qualified" attributeFormDefault="unqualified">
     
    	<xsd:element name="service" type="service-type">
    	</xsd:element>
     
    	<xsd:complexType name="service-type">
    		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
    			<xsd:element name="mappingMethod" type="mappingMethodType" />
    		</xsd:sequence>
    		<xsd:attribute name="interface" type="xsd:string" use="required">
    		</xsd:attribute>
    	</xsd:complexType>
     
    	<xsd:complexType name="mappingMethodType">
    			<xsd:attribute name="methodName" type="xsd:string"/>
    			<xsd:attribute name="jrfMethodId" type="xsd:string"/>
    	</xsd:complexType>
     
    </xsd:schema>
    mais j'ai une erreur :
    Invalid content was found starting with element 'mappingMethod'. One of '{&quot;http://..../serviceproxy&quot;:mappingMethod}' is expected.
    Merci

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    [0] Un préalable: je suppose l'xml soit eu serviceproxy inhéridé ou bien comma ça, sinon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <serviceproxy:service
        xmlns:serviceproxy="http://..../schema/serviceproxy"
        interface="com.bnppf.ssc.imb.ee.hello.GreetingInterface">
        <mappingMethod methodName="a" jrfMethodId="b"/>
        <mappingMethod methodName="c" jrfMethodId="d"/>
    </serviceproxy:service>
    [1] La plus simple correction à faire c'est de réstorer le défaut elementFormDefaut inqualifié.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsd:schema xmlns="http://..../schema/serviceproxy"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://..../schema/serviceproxy"
        elementFormDefault="unqualified" attributeFormDefault="unqualified">
    Comme ça, c'est déjà un valable schema.

    [1.1] Pourtant il faut dire qu'il y a bien des aller-retour entre l'espace de nom de serviceproxy et l'espace de nom null. Le type complexe mappingMethodType est au fait d'un type defini dans l'espace de serviceproxy référé par une élément dans l'espace de nom null: ça devient un peu "trop" subtil pour beaucoup de comprendre en cas de le maintenir. Il vaut mieux, si il n'était pas fait déliberément, de mettre le type mappingMethodType local pour enlever cette subtilité non nécéssaire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <xsd:complexType name="service-type">
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="mappingMethod">
                <xsd:complexType>
                    <xsd:attribute name="methodName" type="xsd:string"/>
                    <xsd:attribute name="jrfMethodId" type="xsd:string"/>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
        <xsd:attribute name="interface" type="xsd:string" use="required">
        </xsd:attribute>
    </xsd:complexType>
    et éliminez mappingMethodType tout court.

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/03/2015, 09h15
  2. Réponses: 4
    Dernier message: 19/08/2011, 14h44
  3. Réponses: 3
    Dernier message: 02/04/2010, 19h15
  4. Créer un tableau pour afficher les données d'une requête.
    Par BILANGA dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/10/2009, 12h04
  5. [VBA] [2000] Créer un module pour compacter les données
    Par DamKre dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/05/2007, 07h14

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