我想用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>
答案 0 :(得分:0)
更正:
xsi:SchemaLocation
更改为xsi:schemaLocation
。案件很重要。commentaires
放在目标名称空间中。id-commentaire
放在目标名称空间中。正确,有效的XML和XSD如下:
<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>
<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>