0

可能这已经被问过很多次了。但是我浏览了所有的帖子,但由于我对 XML 和 XSD 一无所知,所以无法清除我的错误。有人可以找出错误吗?

XML

<?xml version="1.0" encoding="UTF-8"?>
<HTMLQuestion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://www.w3schools.com ./HTMLQuestion1.xsd" xmlns="urn:Test.Namespace" >
<HTMLContent>
<html>
  abcd
</html>

</HTMLContent>
<FrameHeight>450</FrameHeight>
</HTMLQuestion>

这是模式 HTMLQuestion1.xsd

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:Test.Namespace" xmlns="urn:Test.Namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="HTMLQuestion">
<xs:complexType>
  <xs:sequence>
    <xs:element name="HTMLContent">
      <xs:complexType>
        <xs:sequence>
          <xs:element type="xs:string" name="html"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element type="xs:short" name="FrameHeight"/>
  </xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

我得到的错误是

cvc-elt.1.a : Cannot find the declaration of element 'HTMLQuestion'
4

2 回答 2

1

我认为这将解决您的问题。

我已经创建了您提到的 XML 模式文件:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:Test.Namespace" xmlns="urn:Test.Namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="HTMLQuestion">
<xs:complexType>
<xs:sequence>
<xs:element name="HTMLContent">
  <xs:complexType>
    <xs:sequence>
      <xs:element type="xs:string" name="html"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element type="xs:short" name="FrameHeight"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

现在我根据上面的 XSD 创建了 xml,如此处所述。

<?xml version="1.0" encoding="UTF-8"?>
<HTMLQuestion xmlns="urn:Test.Namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:Test.Namespace HTMLQuestion1.xsd ">
<HTMLContent>
<html>p:html</html>
</HTMLContent>
<FrameHeight>0</FrameHeight>
</HTMLQuestion>

这不显示任何错误。你可以继续这个。

于 2013-04-30T05:35:50.790 回答
0

您已向进程提供了 namespace 模式的位置http://www.w3schools.com,但您在此命名空间中没有任何元素。您需要使用 xsl:noNamespaceSchemaLocation 属性来为无命名空间元素提供模式的位置。

如果您希望从 w3schools 站点了解有关 XSD 的所有信息,请再考虑一下。它可以作为快速参考非常方便(例如那些提醒您命令语法或按键组合的单页快速参考卡),但它无法获得概念。给自己买一本像样的书,例如 Walmsley 或 van der Vlist。

于 2013-04-28T07:19:56.840 回答