这让我发疯了。我正在尝试为 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 中是唯一的。
谢谢,提前感谢所有人。