• 締切済み

XMLスキーマのrefの使い方

こんにちは。yukimura1024です。 以下のXMLスキーマなんですが「Aの下にBを置ける」という意味でrefを使っています。 しかしこの書き方では「ルート要素としてAもBも使える」という意味でも解釈されてしまいます。 これをrefを使いつつ「Aの下にBを置ける」けど「ルート要素はAのみ」とするにはどう書けばいいでしょうか? <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">  <xs:element name="A">   <xs:complexType>    <xs:sequence>     <xs:element ref="B"/>    </xs:sequence>   </xs:complexType>  </xs:element>  <xs:element name="B">   <xs:complexType>    <xs:sequence>     <xs:element name="C" type="xs:string"/>    </xs:sequence>   </xs:complexType>  </xs:element> </xs:schema> アドバイスいただける方いましたらお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="A" type="AType" /> <xs:complexType name="AType">  <xs:sequence>   <xs:element name="B" type="BType" />  </xs:sequence> </xs:complexType> <xs:complexType name="BType">  <xs:sequence>   <xs:element name="C" type="xs:string"/>  </xs:sequence> </xs:complexType> </xs:schema> では、ダメですか

yukimura1024
質問者

お礼

回答が遅くなりました。。。 試してみましたが、どうもダメなようです。 AとB・Cの2ファイルに分けることで解決しました。

yukimura1024
質問者

補足

こんばんは!回答ありがとうございます。 なるほど、Typeを使って型にしてしまう?訳ですね。 XMLスキーマからXMLエディタを作るのですが、 これでうまくいくかどうか、明日職場で試してみたいと思います。

関連するQ&A