0

这让我发疯了。我正在尝试为 xml 文档创建架构。我认为我非常接近,但由于某种原因,我无法弄清楚如何命名命名空间。在网上看了十几篇文章并尝试了所有方法,但 Visual Studio 似乎没有得到它。

这是我要为其创建 XSD 的 xml 文件:

<?xml version="1.0" encoding="utf-8" ?>
<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="DataAutoNamespace dataautostructure.xsd" >
 <set id="HLM">
   <!-- Download page -->
   <item tag="Tabs" value="tabs"/>
   <item tag="HoldingsListTab" value="holdingsListTab"/>
   <item tag="BackLink" value="back"/>

   <!-- Holdings List Section -->
   <item tag="HoldingsList" value="holdingsList"/>
   <item tag="SubText" value="subText"/>
   <item tag="Format" value="format"/>
   <item tag="Contents" value="contents"/>
   <item tag="HoldingsFileName" value="fileName"/>
   <item tag="FileNameHeader" value="header"/>
   <item tag="Textbox" value="textbox"/>
   <item tag="InputBox" value="inputBox"/>
   <item tag="TextButton" value="textButton"/>
   <item tag="TextButton" value="textButton"/>

 </set>
</data>

我为此 xml 设计的架构如下:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="DataAutoNamespace" xmlns="DataAutoNamespace" elementFormDefault="qualified">
  <xs:element name="item" type="itemType">
        <xs:unique name="UniqueItem">
            <xs:selector xpath="set/item"/>
            <xs:field xpath="@tag"/>
        </xs:unique>
    </xs:element>
  <xs:element name="data">
    <xs:complexType>
      <xs:all>
      <xs:element name="set" type ="setType"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>
    <xs:complexType name="itemType">
        <xs:attribute name="tag" type="xs:token" use="required"/>
        <xs:attribute name="value" type="xs:token" use="required"/>
    </xs:complexType>
  <xs:complexType name="setType">
    <xs:sequence>
      <xs:element ref="item" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required"/>
  </xs:complexType>
</xs:schema>

有人可以指导命名空间有什么问题吗?我收到“找不到属性‘标签’的架构信息。” 'id 和 'value' 以此类推。

此外,当我检查对架构的入站引用时,我没有得到任何信息。我想确保标记属性在 XML 中是唯一的。

谢谢,提前感谢所有人。

4

1 回答 1

0

首先,您要声明要在其中的元素,DataAutoNamespace但在您的实际文档中,找不到该名称空间中的任何元素。您需要在 XML 文档中使用xmlns.

于 2013-07-17T14:43:11.553 回答