- 締切済み
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>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- jo-ji
- ベストアンサー率72% (26/36)
まず、こういった類の質問をする場合は、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>