cvc-elt.1.a:找不到元素'commentaires'的声明



我想用XSD验证我的XML代码。首先,我在没有任何命名空间的情况下创建了它,并且它工作正常。但是,我想要一个命名空间,但这里的事情变得棘手。事实上,使用下面提供的代码,当我尝试验证我的XML时,我的软件(Editix(将我作为元素输入的任何内容都将被视为"正确",即使它应该是不正确的(例如,编写字符串而不是日期(。

谁能帮我?

这是我的XML代码:

<commentaires xsi:SchemaLocation="benoit@agroparistech.fr DM-commentaires.xsd"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:com="benoit@agroparistech.fr">
<com:commentaire id-commentaire="ID1">
<com:date>
2018-03-13
</com:date>
<com:auteur>
Jean Dupont
</com:auteur>
<com:texte>
La cuisine était délicieuce, je ne peux que vous conseiller l'entremet à la fraise!
</com:texte>
</com:commentaire>
</commentaires>

这是XSD代码:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="benoit@agroparistech.fr" xmlns="benoit@agroparistech.fr" elementFormDefault="qualified">
<xs:element name="auteur" type="xs:string"/>
<xs:element name="date" type="xs:date"/>
<xs:element name="texte" type="xs:string"/>
<xs:attribute name="id-commentaire" type="xs:string"/>

<xs:element name="commentaire">
<xs:complexType>
<xs:sequence>
<xs:element ref="date"/>
<xs:element ref="auteur"/>
<xs:element ref="texte"/>
</xs:sequence>
<xs:attribute ref="id-commentaire" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="commentaires">
<xs:complexType>
<xs:sequence>
<xs:element ref="commentaire" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

更正:

  1. xsi:SchemaLocation更改为xsi:schemaLocation。 案情重大。
  2. commentaires放在目标命名空间中。
  3. id-commentaire放在目标命名空间中。
  4. 将命名空间值从电子邮件地址更改为 URI。(这是可选的,但首选。

更正后,有效的 XML 和 XSD 如下:

.XML

<com:commentaires xsi:schemaLocation="http://agroparistech.fr/commentaires DM-commentaires.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:com="http://agroparistech.fr/commentaires">
<com:commentaire com:id-commentaire="ID1">
<com:date>
2018-03-13
</com:date>
<com:auteur>
Jean Dupont
</com:auteur>
<com:texte>
La cuisine était délicieuce, je ne peux que vous conseiller l'entremet à la fraise!
</com:texte>
</com:commentaire>
</com:commentaires>

XSD

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://agroparistech.fr/commentaires"
xmlns="http://agroparistech.fr/commentaires"
elementFormDefault="qualified">
<xs:element name="auteur" type="xs:string"/>
<xs:element name="date" type="xs:date"/>
<xs:element name="texte" type="xs:string"/>
<xs:attribute name="id-commentaire" type="xs:string"/>
<xs:element name="commentaire">
<xs:complexType>
<xs:sequence>
<xs:element ref="date"/>
<xs:element ref="auteur"/>
<xs:element ref="texte"/>
</xs:sequence>
<xs:attribute ref="id-commentaire" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="commentaires">
<xs:complexType>
<xs:sequence>
<xs:element ref="commentaire" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

最新更新