这是我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<linii xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="file:///C:/Users/Cosmin/Desktop/MyApplication/app/src/main/res/values/linii.xsd">
<linia id="1">
<indicativ>19</indicativ>
<nume>Auchan</nume>
<traseu>1</traseu>
</linia>
<linia id="2">
<indicativ>20</indicativ>
<nume>Carrefour ERA</nume>
<traseu>2</traseu>
</linia>
</linii>
和我的XSD
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="linii">
<xs:complexType>
<xs:sequence>
<xs:element name="linia" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:byte" name="indicativ"/>
<xs:element type="xs:string" name="nume"/>
<xs:element type="xs:byte" name="traseu"/>
</xs:sequence>
<xs:attribute type="xs:byte" name="id" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我收到以下错误:
必须声明元素linii
为什么呢?我在Android Studio工作。 CoreFiling验证XML和XSD。
答案 0 :(得分:0)
您的XML文档和XSD很好,您的XML文档对XSD有效。
xsi:noNamespaceSchemaLocation
指定的文件格式也是正确的。 (是的,它应该有三个/
分隔符 - file://
加上一个(空的)机器说明符加上另一个/
后面跟着文件的目录路径。大多数XML处理器(包括基于广泛使用的XML解析器的那些,Xerces)期望这种格式;遗憾的是,奇怪的球(MSXML)是可能的。)
那么,如果所有这些都是正确的,为什么处理器找不到您的XSD?
可能在文件路径的某处有一个难以发现的错误。
以下是如何在文件路径中查找错误(或错误):
file:///C:/Users/Cosmin/Desktop/MyApplication/app/src/main/res/values/linii.xsd
)。如果是XSD
出现了,你知道你对XSD的规范是正确的,而你
可能怀疑您的XML处理器有idiosyncratic expectation。