私は.xml
ファイルにXQUERY FLWOR
式を使用しています:
for $dynosaur in doc("document.xml")//species
let $dynosaurName := $dynosaur/text() // keeping the dynosaurName as a variable
return $dynosaur
のような上記のリターン結果:
<species age="84">Velociraptor</species>
私はのように結果をフォーマットする必要があります:
<!ELEMENT dynosaur (Velociraptor) +>
私は、下記の使用しようとしたが働いておりませんので、10
...
return <!ELEMENT dynosaur ({$dynosaurName}) +> //here i want that format but it return error
そしてXMLファイル:
<?xml version="1.0"?>
<dinosauria>
<group>
<name>saurishia</name>
<subgroups>
<group>
<name>theropoda</name>
<subgroups>
<group>
<name>carnosaurs</name>
<speciesList>
<species age="74">Dyptosaurus</species>
<species age="170">Megalosaurus</species>
<species age="67">Tyrannosaurus</species>
</speciesList>
</group>
<group>
<name>coelurosauria</name>
<speciesList>
<species age="84">Velociraptor</species>
<species age="110">Deinonychus</species>
<species age="228">Eoraptor</species>
</speciesList>
</group>
</subgroups>
</group>
<group>
<name>sauropodomorpha</name>
<subgroups>
<group>
<name>sauropods</name>
<speciesList>
<species age="155">Brachiosaurus</species>
<species age="155">Camarasaurus</species>
</speciesList>
</group>
</subgroups>
</group>
</subgroups>
</group>
<group>
<name>ornithishia</name>
<subgroups></subgroups>
</group>
</dinosauria>
最後に:
私はそのタイプを返す方法を見つけることができませんf結果。私は多くのリンクとこの本を検討しました:http://www.datypic.com/books/xquery/chapter09.html
私はあなたの入力とあなたの希望する結果との関係が何であるかを理解するのに苦労しています。あなたは明らかにDTDの形で出力を生成しようとしていますが、入力を記述するDTDではありません。それは何ですか?言い換えると、入力が変更された場合、出力にどのような影響がありますか? –
@Michael Kay別の例を挙げますので、質問のxmlだけを念頭に置いてください。このクエリは、 'xmlファイル 'にそれらを見ることができるので、' species'を3つ戻します。 '<種の年齢= "84"> Velociraptor 'と2つ以上。これは 'forループ'の結果です。この返された種のそれぞれがこのフォーマットでそれを印刷したいと思います。私は '<!ELEMENT dynosaur($ dynosaur_name)+>'を返そうとしている 'forループ'の 'result'を意味します。 '$ dynosaur_name'は恐竜の名前です。 – GOXR3PLUS
@Michael Kay私が望むのは、一般的にそのような形で結果をフォーマットすることです。「xml DTD」のように見えます。 – GOXR3PLUS