0

我的 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 文件吗?谢谢,

4

1 回答 1

1

三个问题:

  1. xsi:schemaLocation属性值应该是命名空间 URI 和模式文档 URI 的空格分隔序列,例如xsi:schemaLocation="http://www.w3schools.com note.xsd"
  2. 你写了:

    我希望浏览器至少能通过某种通用错误

    目前尚不清楚您是否实际使用了一些验证工具。当您打开 XML 文档时,没有浏览器验证 XML 架构。

  3. 您的架构以 http://www.w3schools.com命名空间 URI 为目标,但您的文档位于空(或空)命名空间 URI 下。这将导致验证错误,即使您使用 xsi:noNamespaceSchemaLocation 而不是xsi:schemaLocation 属性。也许您想在输入源中添加默认命名空间声明,例如 xmlns="http://www.w3schools.com"...
于 2010-12-20T14:37:00.627 回答