2010-08-13 3 views
1

i ont un schéma xmlproblème xml avec <attribut ref = "...">

<xs:complexType> 
... 
<xs:attribute ref="unaryOperator"></xs:attribute> 
</xs:complexType> 


<xs:attribute name="unaryOperator"> 

i essayer de l'utiliser dans mon fichier xml comme celui-ci

<inv_constraint unaryOperator="not"> 

L'éditeur me donne cette erreur:

Description Emplacement du chemin d'accès aux ressources Type [Xerces] cvc-complex-type.3.2.2: L'attribut 'unaryOperator' n'est pas autorisé à apparaître dans l'élément 'inv_constraint'. @see: http://www.w3.org/TR/xmlschema-1/#cvc-complex-type abc.xml/ligne prova 28 XML Problème

l'éditeur suggère que je fais comme ça

<inv_constraint xmlns:ns1="http://abc/abcd" ns1:unaryOperator="not" > 

si je ne l'utilise pas l'arbitre dans le schéma XML et il suffit de copier coller le attribut au lieu de le référencer, puis mon fichier xml fonctionne,

alors ma question est de savoir comment puis-je faire valider mon xml sans cette balise bizarre et garder l'ref dans le schéma XML?

Répondre

0

Je ne vois aucun problème ici. Les œuvres suivantes bien pour moi:

schema.xsd:

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:complexType name="ct"> 
    <xs:attribute ref="unaryOperator"/> 
</xs:complexType> 

<xs:attribute name="unaryOperator"/> 

<xs:element name="inv_constraint" type="ct"/> 

</xs:schema> 

file.xml:

<?xml version="1.0"?> 
<inv_constraint unaryOperator="non" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"></inv_constraint> 

Je l'ai testé sur: Xerces, saxon, et XSV d'autres validateurs.

Donc, si vous avez encore ce problème:

  1. Fournir exemple complet - fichier de schéma simplifié et le fichier XML sur lequel nous pouvons reproduire ce problème.
  2. Quel éditeur utilisez-vous?
+1

oui je suis d'accord cela fonctionne, je pense que je ne me suis pas bien expliquer, je veux votre schema.xsd et ce file.xml pas celui-ci : pourquoi dois-je mettre ces étiquettes bizarres (xmlns: xsi =" http://www.w3.org/2001/XMLSchema-instance "xsi: noNamespaceSchemaLocat ion = "schema.xsd") pour que le fichier file.xml fonctionne? merci – max4ever

+0

en tant qu'éditeur j'utilise le plugin XML oXygenl pour Eclipse – max4ever

+1

Sans cet attribut il ne sera pas capable de le valider automatiquement, je pense.Bien que vous puissiez utiliser un scénario de validation ou de validation externe dans oXygen Editor (je n'ai pas de plugin à tester). Voici ce que dit oXygen si vous tentez de valider un document sans attribut de déclaration de schéma: "Aucun schéma ou DTD associé au document Vous pouvez créer une association avec l'action Associer un schéma ou la configurer dans la liste Options de la liste Préférences/Type de document ou en créant un scénario de validation " – Shcheklein

Questions connexes