problèmes d'espace de noms XSD schéma
-
14-10-2019 - |
Question
Comment puis-je attendre « » un élément d'avoir un espace de noms à l'aide XSD? À ce stade, je reçois une erreur disant: « contenu non valide a été trouvé en commençant par l'élément 'ns: personne un des' { « : personne}. ». Devrait »
Comme vous pouvez le voir, je définir l'attribut name
sur le xs:element
: « personne ». Si je définis « ns: personne ». Comme le name
je reçois une erreur que le nom est invalide aaarghh
Qu'est-ce que je manque ici?
est le XSD (ns.xsd):
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="peoples">
<xs:complexType>
<xs:sequence>
<xs:element name="person"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Ceci est le XML (peoples.xml):
<?xml version="1.0" encoding="ISO-8859-1"?>
<peoples xmlns:ns="url" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ns.xsd">
<ns:person>
<name>John</name>
</ns:person>
</peoples>
La solution
Vous devez inclure le XSD complet pour vous aider. Mais de l'erreur que je vois et le fait que vous avez inclus « xsi: noNamespaceSchemaLocation » dans votre document d'instance XML, le problème que je vois est que vous avez défini votre schéma avec pas targetNamespace spécifié mais vous qualifiez < strong> personne élément avec un préfixe d'espace de noms. Il suffit de supprimer « ns ». À tous les endroits dans votre document d'instance et vous êtes tout bon