2009-08-10 5 views
1

Un nœud associé ici était - XML Attributes vs Elements mais c'était plus une question de conception.Si un schéma nécessite un attribut et que je l'envoie en tant qu'élément, est-il invalide?

Ma question concerne la validité.

Si un schéma nécessite

<record name="foo" description="bar" /> 

et je fournir

<record> 
    <name>foo</name> 
    <description>bar</description> 
</record> 

Est-ce que le code XML peuvent être invalidées? Et vice versa: si les éléments ont été spécifiés et que je fournis des attributs, est-ce invalide?

Existe-t-il une référence dans une spécification XML documentant ce qu'un analyseur XML doit faire dans ce cas, où la sémantique est la même, mais la structure XML littérale diffère?

Répondre

1

Les attributs et les éléments ne sont en aucun cas interchangeables. Si le schéma en nécessite un, l'utilisation de l'autre n'est pas valide et la logique de validation du schéma XML doit le rejeter. Qu'ils soient sémantiquement identiques est aussi très discutable.

2

Si un schéma XML indique que vous avez besoin d'un élément et que vous fournissez un attribut, cela n'est pas valide. L'inverse est le même. Si vous ne vérifiez pas le code XML, votre code aura toujours des problèmes car vous rechercheriez un attribut et il ne trouvera pas l'élément.

0

En XML, un schéma est un contrat strict: si vous ne le respectez pas, la transaction est terminée!

Si les attributs ont été spécifiés en tant qu'éléments, le code XML est-il valide?

Réponse: c'est invalide.

Si des éléments ont été spécifiés comme attributs, le XML est-il valide?

Réponse: c'est invalide.

Qu'est-ce qu'un analyseur XML devrait faire dans ce cas?

Réponse: échec lors de l'analyse pour des raisons de validité de schéma.

Un lecteur XML ne s'adaptera à aucune erreur dans un document source. Sur ce sujet, le monde XML est opposé au monde HTML. Cette rigueur est une propriété de XML qui lui permet d'être facile à analyser, traiter et générer.

Questions connexes