我在xml中理解key:keyref
。
我的结构
<Regions>
<Region Name="Simple region name">
<NumberOfWineries>3</NumberOfWineries>
<Winery Name="Simple winery">
<City>Simple city</City>
<Owner>Simple owner</Owner>
<Image photo="img_winary"/>
<NumberOfDiffrentWines>2</NumberOfDiffrentWines>
<Wines>
<Wine Name="Cool wine" Vintage="2003">
<Characteristics>
<Color>blue</Color>
</Characteristics>
</Wine>
</Wines>
</Winery>
</Region>
<Region....>
.....
</Region>
</Regions>
在这里,我正忙着从葡萄酒到葡萄酒酿造key:keyref
。
我正在考虑制作一个独特的id
酒庄,并为每一款葡萄酒提供这个ID。
像
这样的东西<winery id="1" />
<wine idref="1" />
我不太清楚,如果我走的是错误的路,有人可以指导我。
提前谢谢。
答案 0 :(得分:0)
代码示例如下,省略了一些细节:
<xs:element name="root" type="Root">
<xs:key name="aKey">
<xs:selector xpath=".//Winery"/>
<xs:field xpath="@id"/>
</xs:key>
<xs:keyref name="aKeyRef" refer="aKey">
<xs:selector xpath=".//wine"/>
<xs:field xpath="@wineryRef"/>
</xs:keyref>
</xs:element>
<xs:complexType name="Root">
<xs:sequence>
<xs:element ref="Winery"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Winery">
<xs:complexType>
<xs:sequence>
<xs:element name="Wines" type="wines"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="wines">
<xs:sequence>
<xs:element name="wine" type="wine" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="wine">
<xs:sequence>
<xs:element name="chara" type="xs:string"/>
</xs:sequence>
<xs:attribute name="wineryRef" type="xs:string"/>
</xs:complexType>
一些重要的注释:
key
和keyref
您可以在my xsd tutorial中找到更多示例和说明。