我正在努力理解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" />我不太清楚,如果我走错了路,有人能给我指引吗?
提前谢谢你。
发布于 2017-01-30 22:33:01
代码示例如下,省略了一些细节:
<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中找到更多的例子和解释。
https://stackoverflow.com/questions/41862382
复制相似问题