J'ai lu une tonne à propos de xml et j'ai beaucoup appris, mais je suis bloqué sur une erreur.Erreur de validation XML lors de l'utilisation de plusieurs fichiers de schéma/espaces de noms
J'ai un schéma défini dans plusieurs fichiers et je n'arrive pas à le faire fonctionner. Voici un exemple
==================================
libraryBooks.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="urn:MyNamespace"
targetNamespace="urn:MyNamespace"
elementFormDefault="qualified"
>
<xsd:element name="libraryBooks" type="libraryBooksType"/>
<xsd:complexType name="libraryBooksType">
<xsd:sequence>
<xsd:any minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
</xsd:schema>
==================================
Book.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="urn:MyNamespace2"
targetNamespace="urn:MyNamespace2"
elementFormDefault="qualified"
>
<xsd:element name="book" type="booksType"/>
<xsd:complexType name="bookType">
<xsd:attribute name="title" type="xsd:string"/>
</xsd:complexType>
</xsd:schema>
===========================
myXml.xml
<?xml version="1.0" encoding="utf-8" ?>
<libraryBooks
xmlns="urn:MyNamespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:MyNamespace file:///C:/libraryBooks.xsd"
name="CentralLibrary">
<mn2:book
xmlns:mn2="file:///C:/book.xsd"
title="How to make xml work the way I want">
</mn2:book>
</libraryBooks>
Donc l'erreur que je reçois serait "Le 'file: /// C: /book.xsd: livre' élément est introuvable". Des idées? Je suis presque certain que c'est quelque chose de simple
Modifier: Merci beaucoup à tous. J'étais proche mais juste coincé sur une chose mineure. Vraiment apprécier la direction. J'ai essayé les deux méthodes et au cas où quelqu'un d'autre lecture de ce se demande, la façon d'entrer dans plusieurs schemaLocations au niveau du nœud racine est
xsi:schemaLocation="urn:MyNamespace file:///C:/libraryBooks.xsd
urn:MyNamespace2 file:///C:/book.xsd"
Dans quelle langue essayez-vous d'analyser le code XML? – Rachel
J'essayerais de déplacer xmlns: mn2 = "file: /// C: /book.xsd" au plus haut niveau – Grzenio