1
<xs:attributeGroup name="personattr">
<xs:attribute name="attr1" type="xs:string"/>
<xs:attribute name="attr2" type="xs:integer"/>
<xs:attributeGroup ref="personattr2">
</xs:attributeGroup>
<xs:attributeGroup name="personattr2">
<xs:attribute name="attr12" type="xs:string"/>
<xs:attribute name="attr22" type="xs:integer"/>
<xs:attributeGroup ref="personattr3">
</xs:attributeGroup>
<xs:attributeGroup name="personattr3">
<xs:attribute name="attr13" type="xs:string"/>
<xs:attribute name="attr23" type="xs:integer"/>
</xs:attributeGroup>
<xs:attributeGroup name="personattr4">
<xs:attribute name="attr14" type="xs:string"/>
<xs:attribute name="attr24" type="xs:integer"/>
</xs:attributeGroup>
上記のサンプルXSDファイルでは、特定のattributeGroupからすべてのネストされたattributeGroupをどのように抽出するのですか? personattr
にはpersonattr2
があります。 personattr2
の内部には、personattr3
があります。結果にはpersonattr4
を含めないでください。XQuery:すべてのネストされたxs:attributeGroupを抽出する
は、最後の行は'ローカルではないでしょうか? – Bouke
質問で与えられた入力は有効なXMLノードではないので、私はそれがある変数(ここでは '$ all-groups')に束縛されていると仮定しました。 '@ref'属性を持つものではなく、トップレベルの' xs:attributeGroup'要素だけが必要です。しかし、* XSD *文書全体がコンテキスト項目である場合、 'local:groups-below(// xs:attributeGroup、 'personattr')'は正しい結果を返します。 –
実際には、すべてのxs:attributeGroupノードがシーケンスとして返されます。この場合、personattr、personattr2、personattr3という名前のattributeGroupがシーケンス内にあります。とにかく私はあなたにクレジットを与えます –