对于我的xml文件,我有
<?xml version="1.0" encoding="UTF-8"?>
<forum>
<post>
<description>The Day is coming </description>
<date> Thu, 16 Apr 2009 </date>
<title> cats </title>
</post>
<post>
<description> its raining </description>
<date> Tues, 12 Apr 2010 </date>
<title> dog </title>
</post>
<post>
<description>Game over </description>
<date> Tues, 16 Apr 2009 </date>
<title> frog </title>
</post>
<post>
<description> Watch </description>
<date> wednesday, 12 Apr 2010 </date>
<title> hats </title>
</post>
</forum>
我的xsd文件
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
<xs:element name="forum" type="xs:forumtype">
<xs:complexType name = "forumtype">
<xs:sequence>
<xs:element name="post" type ="posttype"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="posttype">
<xs:sequence>
<xs:element name="description" type="xs:string"/>
<xs:element name="date" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
当我尝试验证模式时,我得到1字节UTF-8序列的无效字节1。即使我将编码设置为“UTF-8”,为什么还不喜欢这个呢?
答案 0 :(得分:1)
您应该包含更多信息:平台/语言,特定的错误消息,以便更容易建议。 但假设错误消息表明UTF-8编码存在问题,这种情况发生在较低级别(在XML解析期间),与Schema验证无关。
相反,基础XML文档使用的解码程序与解析器应该使用的编码不同 - 最常见的内容使用类似Latin-1
(ISO-8859-1)编码(或类似)的内容。您可以通过解析文档来验证这一点,并且无论架构如何都应该得到类似的错误。
因此,您可能有一个损坏的文档(使用的编码不是XML声明所具有的编码);或使用声称错误编码的代码。
答案 1 :(得分:0)
我使用了免费编辑器,它默认为unicode。更改编码修复它。
答案 2 :(得分:0)
您发布了XML 文本,但该错误实际上是抱怨存储在源中的二进制表示。二进制源显然不是真正的UTF-8。