Question

Il était une fois que j'avais un type de document valide et XML valide. Je mets l'ancien au-dessus de ce dernier, cntrl-s'd et voici: tout était comme tout devrait être. Aujourd'hui, j'ai un schéma valide (construit sur mesure pour mon XML toujours valide). J'ai essayé ma même approche éprouvée et vraie -. Mais hélas, sans succès

Je reçois des erreurs différentes avec chaque autre validateur j'utilise, et encore de nouvelles erreurs de navigateurs que je soumets à (mais qui fait sens). Donc, je ne suis pas sûr que je devrais donner à être le plus utile. Validome dit:

  

Vous ne trouvez pas la déclaration d'élément "xs: schéma.

et

  

Le balisage dans le document suivant l'élément racine doit être bien formé.

(mais il est!)

Si ce serait utile d'avoir le XML et le schéma, s'il vous plaît ne pas hésiter à demander , je pensais juste que parce qu'ils sont à la fois valides et W3 long, je voudrais essayer de les laisser sortir en premier. Tout ce que je fais est de mettre le schéma au-dessus du XML et de l'envoyer par le validateur / navigateur.

Merci!

Était-ce utile?

La solution

@Nona Un schéma est un document bien formé et est donc votre instance. Toutefois, si vous les concaténer le résultat n'est plus bien formé.

Si ce que vous avez est:

<xs:schema ...>...</xs:schema>
<myxml ...>...</myxml>

Ceci est mal formé (pas d'élément racine unique)

La raison pour laquelle l'approche est différente DTD est que le sous-ensemble interne est autorisé spécifiquement préfixera l'élément racine. Donc:

<DOCTYPE myxml [
... my DTD ...
]>
<myxml ...>...</myxml>

est bien formée.

Malheureusement, il est pas tout à fait trivial d'associer un schéma avec une instance. Vous pourriez avoir à regarder xsi:schema-location.

UPDATE Malheureusement, la réponse dépendra du cadre du logiciel que vous utilisez. Autant que je sache, il n'y a aucun moyen d'emballage d'un document et un schéma tel que tout logiciel acceptera et tenter de valider. C'est pourquoi les schémas sont beaucoup plus d'efforts que DTDs.

Voici un site simple où vous pouvez soumettre les deux documents et de test.

Tout au-delà peut avoir besoin d'une connaissance du logiciel. Il y aura des approches différentes selon que vous utilisez Oracle, Microsoft, etc. Cela peut être fait en appelant des méthodes pour charger le document, charger le schéma puis valider, ou la définition des propriétés (comme on peut le faire dans Xerces).

La réponse peut dépendre de la raison pour laquelle vous faites cela. Si vous présentez des documents au propriétaire du schéma alors ils probbaly un système de validation. Si vous devez valiadte contre le schéma de quelqu'un d'autre, alors vous aurez besoin d'obtenir un logiciel de schemavalidation et exécuter ce. Êtes-vous sur MS ou Unix / Java?

Plus UPDATE Proposer Quelle est la meilleure façon de valider un fichier XML par rapport à un fichier XSD? Comme ils disent qu'il n'y a pas d'approche ultra-simple.

Autres conseils

Juste un coup de poignard dans le noir, mais avez-vous le préfixe d'espace de noms de schéma XML déclaré dans l'élément racine? Il est xmlns: xs = "http://www.w3.org/2001/XMLSchema". Si un préfixe d'espace de nom n'est pas lié à un espace de nom, le document est invalide.

Au risque d'énoncer une évidence, vous voudrez peut-être envisager des raisons pour lesquelles la déclaration de xs élément: schéma ne peut pas être trouvé par le validateur.

La deuxième erreur suggère qu'il ya un support d'angle manquant quelque part, ou qu'il ya des éléments qui ne sont pas imbriqués correctement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top