以下は、私が扱っている XML の構造を説明する DTD です。
<!DOCTYPE bib [
<!ELEMENT bib (book+,magazine*)>
<!ELEMENT book (title,author+,publisher,editor?,price)>
<!ELEMENT magazine (title,publisher,editor+)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (last,first)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT editor (last, first,affiliation)>
<!ELEMENT price ((#PCDATA)>
<!ELEMENT last (#PCDATA)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT affiliation (#PCDATA)>
<!ATTLIST book year CDATA #REQUIRED>
]>
Weikum 氏が編集者の 1 人であるすべての本または雑誌を返すには、XQuery を作成する必要があります。
本や雑誌の返却方法に困っています。これは私が思いつくことができるものです:
for $x in document(“bib.xml”)/bib
where $x/book/editor/lastname = “Weikum” or $x/magazine/editor/lastname = “Weikum”
return <result></result>
しかし、これは私の望ましい結果を達成していません。本や雑誌の要素を返品するにはどうすればよいですか? 私はちょうど言うべきreturn $x
ですか?