你能在XML模式中“加入”吗?

时间:2011-06-09 00:03:05

标签: join xsd

我很确定这个问题的答案是否定的,但问题永远不会伤害。有没有办法在XML模式中进行连接?

这就是我的意思。您可以让employees/employee/@office_id和xml中的其他位置/offices/region/office/@office_id。架构中是否有一种方法可以告诉它这两个属性相互映射?

我问,因为我们可以自动为员工获取他们的办公室信息,而无需用户指定这种关系。

3 个答案:

答案 0 :(得分:4)

JOIN是一个关系概念。您必须在XPATH中编写等效代码。我不相信有任何机制可以帮助你。你必须得到办公室实例,并在你的代码或XSLT中为特定的个人办公室循环。

答案 1 :(得分:0)

您是否在询问是否可以设置架构,以便每个员工/ @ office_id都有相应的办公室/ @ office_id?

如果你知道可能的办公室ID,你可以创建一个类似的类型:

<xsd:simpleType name="OfficeIDType">
    <xsd:restriction base="xsd:integer"> <!-- or whatever type an office id is -->
        <xsd:enumeration value="1"/>
        <xsd:enumeration value="2"/>
        <xsd:enumeration value="3"/>
    </xsd:restriction>
</xsd:simpleType>

然后在声明属性时,将它们设为这种类型并且是必需的,如下所示:

<xsd:attribute name="office_id" type="OfficeIDType" use="required"/>

答案 2 :(得分:-2)

可以使用XLINK指定XML实体之间的外部引用和连接。