为什么在验证我的xml时没有出现任何错误?

时间:2010-12-20 13:14:27

标签: xml-validation xsd-validation

我的Xml未针对XSD进行正确验证。 我希望浏览器在打开xml文件时至少可以通过某种通用错误消息

我的Xml文件如下 note.Xml

    <?xml version="1.0"?>
    <note
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:SchemaLocation="note.xsd">
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
      </note>

我的Xsd文件如下 note.xsd

      <?xml version="1.0"?>
      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       targetNamespace="http://www.w3schools.com"
       xmlns="http://www.w3schools.com"
         elementFormDefault="qualified"><xs:element name="note">
        <xs:complexType>
         <xs:sequence>
         <xs:element name="from" type="xs:string"/>
         <xs:element name="heading" type="xs:string"/>
         <xs:element name="body" type="xs:string"/>
         </xs:sequence>
        <xs:attribute name="to" type="xs:string" use="required"/>
         </xs:complexType>
          </xs:element></xs:schema>

note.xml和note.xsd文件都在同一个文件夹中。 有人可以指导我为什么没有收到任何错误?那么任何人都可以帮我如何使用xsd验证我的xml文件?谢谢,

1 个答案:

答案 0 :(得分:1)

三个问题:

  1. xsi:schemaLocation属性值 应该是一个白色空间分开 命名空间URI和模式的序列 文档URI,如xsi:schemaLocation="http://www.w3schools.com note.xsd"
  2. 您写道:

      

    我希望浏览器能够通过   至少某种一般性错误

    目前尚不清楚你究竟是谁 使用一些验证工具。没有 浏览器在何时验证XML Schema 你打开一个XML文档。

  3. 您的架构的目标是 http://www.w3schools.com命名空间 URI,但您的文档为null (或空)名称空间URI。这将 最终导致验证错误,即使 你用的是 xsi:noNamespaceSchemaLocation 而不是xsi:schemaLocation 属性。也许你想添加一个 默认名称空间声明 你的输入源就像 xmlns="http://www.w3schools.com" ...