• 締切済み

RELAX NGについて

RELAX NGについて、教えていただきたいことがあります。 以下のXML文書のスキーマをRELAX NGで作成したいのですが、 うまくいかないので、どなたか教えて下さい。お願いします。 <?xml version="1.0" encoding="Shift_JIS"?> <data> <!-- 1か2のみ選択可能 --> <choice>1</choice> <dataname cd="01"> <!-- 要素choiceの値が1のときのみ記述(2のときは省略!) --> <data_a>111</data_a> <!-- 要素choiceの値が1でも2でも記述 --> <data_b>222</data_b> </dataname> </data>

みんなの回答

  • jo-ji
  • ベストアンサー率72% (26/36)
回答No.1

まず、こういった類の質問をする場合は、XML文書だけでなく、自分で記述してみたスキーマを書くのが礼儀だと思いますよ。 自分でどこまで努力してみたかを書かないと、自分で十分な努力をせずに「学校の課題の解き方を教えて下さい」と全部人に頼ってしまう輩と同類に見られてしまって、皆さんに答えてもらえない可能性もあります。答える人に義務はありませんので。 さて、RELAX NGについては、"RELAX NG Tutorial"を読んだ程度なのですが、以下のスキーマ(インデントのために全角スペースを使っています)でうまくvalidationできるようでした。 validationに使用したツールはJingです。 もしうまくいかないようでしたら、validationに使用しているツールを書いていただかないと、何とも答えようがありません。 <element name="data" xmlns="http://relaxng.org/ns/structure/1.0">   <choice>     <group>       <element name="choice">         <choice>           <value>1</value>         </choice>       </element>       <element name="dataname">         <element name="data_a">           <text/>         </element>         <element name="data_b">           <text/>         </element>         <attribute name="cd">           <text/>         </attribute>       </element>     </group>     <group>       <element name="choice">         <choice>           <value>2</value>         </choice>       </element>       <element name="dataname">         <optional>           <element name="data_a">             <text/>           </element>         </optional>         <element name="data_b">           <text/>         </element>         <attribute name="cd">           <text/>         </attribute>       </element>     </group>   </choice> </element>

参考URL:
http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html

関連するQ&A