验证模式1字节UTF-8序列的无效字节1

时间:2011-11-27 03:29:18

标签: xml xsd

对于我的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”,为什么还不喜欢这个呢?

3 个答案:

答案 0 :(得分:1)

您应该包含更多信息:平台/语言,特定的错误消息,以便更容易建议。 但假设错误消息表明UTF-8编码存在问题,这种情况发生在较低级别(在XML解析期间),与Schema验证无关。

相反,基础XML文档使用的解码程序与解析器应该使用的编码不同 - 最常见的内容使用类似Latin-1(ISO-8859-1)编码(或类似)的内容。您可以通过解析文档来验证这一点,并且无论架构如何都应该得到类似的错误。

因此,您可能有一个损坏的文档(使用的编码不是XML声明所具有的编码);或使用声称错误编码的代码。

答案 1 :(得分:0)

我使用了免费编辑器,它默认为unicode。更改编码修复它。

答案 2 :(得分:0)

您发布了XML 文本,但该错误实际上是抱怨存储在源中的二进制表示。二进制源显然不是真正的UTF-8。