Je travaille avec XML pour la première fois pour un projet de travail. J'ai l'impression d'avoir les bases bas mais une chose me fait toujours me gratter la tête. Si vous êtes using an schema to designate a namespace, comment un analyseur XML sait-il où trouver le fichier de schéma afin qu'il puisse valider ce qui y est introduit? Je comprends qu'à un niveau, la seule chose qui compte est que les éléments avec des noms globalement non uniques soient associés à un espace de noms dans lequel ils sont uniques, mais l'analyseur n'a pas besoin de savoir si l'élément est réellement un espace de noms membre? Comment cela se passe-t-il exactement, étant donné que la convention de nommage pour les espaces de noms est généralement une URL qui (probablement) n'a rien à voir avec le schéma en question, sinon comme une chaîne unique de caractères? En d'autres termes, comment un analyseur qui doit valider un fichier XML trouve-t-il le (s) schéma (s) associé (s) à ce fichier?comment un analyseur XML sait-il où trouver un fichier de schéma?
Répondre
Il existe de nombreux mécanismes possibles et cela dépend du processeur de schéma que vous utilisez. Le traitement de schéma est parfois intégré à l'analyse XML, mais conceptuellement, il s'agit d'une opération distincte qui peut être effectuée indépendamment. L'un des moyens que beaucoup de gens utilisent, mais que je n'aime pas beaucoup, est l'attribut xsi: schemaLocation où le document d'instance XML définit lui-même un mappage entre les URI d'espace de noms et les emplacements de schéma. Je ne l'aime pas parce que si vous validez un document, vous ne devriez pas lui faire suffisamment confiance pour vous dire quel schéma utiliser pour la validation.
La plupart des processeurs de schéma sont susceptibles d'avoir une sorte d'API ou une interface de ligne de commande qui vous permet de fournir des emplacements de schéma. Par exemple, si vous utilisez Saxon alors il est
...Validate -s:source.xml -xsd:schema.xsd
où schema.xsd est le document de schéma de niveau supérieur qui comprend/importations tout autre document de schéma nécessaires. Il n'y a pas de liaison explicite aux espaces de noms ici: Saxon va lire les documents de schéma fournis et déterminer quelles définitions s'appliquent à quels espaces de noms.
- 1. Comment corriger un fichier XML basé sur un schéma XML?
- 2. Où puis-je trouver un analyseur de conditions msi
- 3. analyseur Xml, un élément
- 4. Un analyseur de schéma MySQL en Java?
- 5. JAXB: unmarshal un fichier XML avec un schéma XML donné
- 6. Comment documenter un schéma XML?
- 7. Où trouver le schéma unattend.xml
- 8. Comment écrire un schéma xml pour ce fichier xml
- 9. Comment restreindre xml avec un schéma XML?
- 10. comment importer un schéma dans un fichier XML
- 11. SSIS: Ajouter un schéma au fichier xml
- 12. "étendre" un schéma xml
- 13. Trouver un chemin Schéma
- 14. Où puis-je trouver le schéma XML (fichier XSD) pour le langage de balisage Glade?
- 15. Où puis-je trouver un schéma XML SVG valide (pour la génération ecore)?
- 16. Où est un bon analyseur d'adresse
- 17. Comment valider xml en utilisant un schéma XML?
- 18. Besoin d'analyser XML avec un étrange schéma
- 19. Où devrait se trouver un fichier `.htaccess`?
- 20. Comment ajouter un attribut à un élément de schéma xml?
- 21. Fichier de schéma XML, expliquez?
- 22. Comment puis-je valider une chaîne de XML par rapport à un fichier de schéma XML
- 23. Puis-je analyser un fichier XML binaire (dans res/xml) avec un analyseur SAX
- 24. Comment lire un schéma xml depuis un fichier jar dans un contexte de servlet
- 25. comment créer facilement un schéma xml
- 26. Comment enregistrer les données de base avec un analyseur XML
- 27. Ajouter un schéma XML à Visual Studio
- 28. Un simple analyseur XML spécifique à R
- 29. Schéma/format XML pour représenter un format de fichier générique?
- 30. Comment ajouter un espace dans un élément de schéma XML?
neato-burrito! D'accord, pour que je vous comprenne, il est possible que le fichier XML lui-même pointe vers un fichier de schéma, mais cela n'est pas souhaitable. la méthode préférée consiste à pointer l'analyseur vers les emplacements de fichier afin que, lorsqu'il lit les balises d'espace de noms dans le fichier XML, il puisse les faire correspondre aux balises 'targetNamespace' dans le fichier de schéma et les valider. merci d'avoir éclairci ça pour moi! les documents didactiques n'étaient pas très utiles pour comprendre comment cela s'est passé :-p –