首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >苦苦挣扎于key-keyref

苦苦挣扎于key-keyref
EN

Stack Overflow用户
提问于 2017-01-26 05:56:16
回答 1查看 34关注 0票数 0

我正在努力理解xml中的key:keyref

我的结构

代码语言:javascript
复制
<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。

就像这样

代码语言:javascript
复制
<winery id="1" />
<wine idref="1" />

我不太清楚,如果我走错了路,有人能给我指引吗?

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2017-01-30 22:33:01

代码示例如下,省略了一些细节:

代码语言:javascript
复制
<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>

一些重要的注意事项:

  • 在element的主体中定义keykeyref
  • 使用适当的XPath语法来引用您的节点

你可以在my xsd tutorial中找到更多的例子和解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41862382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档