は、私はこのXSDから属性名とタイプを抽出したいXSDスキーマから属性名と型を取得するXquery?
<!-- tutorial.xsd -->
<xs:schema targetNamespace="http://marklogic.com/tutorial"
attributeFormDefault="unqualified"
elementFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="name" type="xs:token"
abstract="false" nillable="false"/>
<xs:element name="qualification" type="xs:token"
abstract="false" nillable="false"/>
<xs:element name="born" type="xs:date"
abstract="false" nillable="false"/>
<xs:element name="dead" type="xs:date"
abstract="false" nillable="false"/>
<xs:element name="isbn" type="xs:unsignedLong"
abstract="false" nillable="false"/>
<xs:attribute name="id" type="xs:ID"/>
<xs:attribute name="available" type="xs:boolean"/>
<xs:attribute name="lang" type="xs:language"/>
<xs:element name="title" abstract="false" nillable="false">
<xs:complexType mixed="false">
<xs:simpleContent>
<xs:extension base="xs:token">
<xs:attribute ref="lang" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="library" abstract="false" nillable="false">
<xs:complexType mixed="false">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element ref="book" maxOccurs="unbounded" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="author" abstract="false" nillable="false">
<xs:complexType mixed="false">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element ref="name" minOccurs="1" maxOccurs="1"/>
<xs:element ref="born" minOccurs="1" maxOccurs="1"/>
<xs:element ref="dead" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute ref="id" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="book" abstract="false" nillable="false">
<xs:complexType mixed="false">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element ref="isbn" minOccurs="1" maxOccurs="1"/>
<xs:element ref="title" minOccurs="1" maxOccurs="1"/>
<xs:element ref="author" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element ref="character" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="id" use="optional"/>
<xs:attribute ref="available" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="character" abstract="false" nillable="false">
<xs:complexType mixed="false">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element ref="name" minOccurs="1" maxOccurs="1"/>
<xs:element ref="born" minOccurs="1" maxOccurs="1"/>
<xs:element ref="qualification" minOccurs="1"
maxOccurs="1"/>
</xs:sequence>
<xs:attribute ref="id" use="optional"/>
</xs:complexType>
</xs:element>
</xs:schema>
XSDファイルを持っているシナリオでは
https://developer.marklogic.com/learn/2007-04-schema
、marklogicからチュートリアルを以下ました。
if (xdmp:database-name(xdmp:database()) ne 'Schemas')
then error(
QName('', 'NOT-SCHEMAS'), 'make sure the content-source is Schemas')
else
doc('tutorial.xsd')
/descendant::xs:element/@name
(: results :)
私は次のようになっています:以下の は私のXQueryで
name
qualification
born
dead
isbn
title
library
author
book
character
が、私は属性と一緒に値を必要とする
name xs:token
qualification xs:token
born xs:token
は
は、誰かが私は、XQueryへの書き換えを助けることができますこれを上の出力にしますか?
ありがとうございました。あなたは私の一日を作った。私はXqueryを初めて使用しています。これを私に助けてくれてありがとう。 – happybayes
慎重に結果を確認した後..iいくつか重複があることがわかります。私は空の名前と型を取得するように、ちょうど "is a"が表示されます。私はこれらの重複を取り除く方法を知りましたか?空の名前と属性を削除するために条件を使用したり書き込んだりすることができますか?あなたの助けを感謝@Dave Cassel – happybayes
@mani where句を追加しました。 FLWORステートメントの詳細については、「XQueryおよびXSLTリファレンスガイド」の[FLWOR式](http://docs.marklogic.com/guide/xquery/langoverview#id_11626)セクションを参照してください。 –