重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

こんにちは。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>

アドバイスいただける方いましたらお願いします。

A 回答 (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>
では、ダメですか

この回答への補足

こんばんは!回答ありがとうございます。

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

補足日時:2006/02/26 20:26
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/03/01 22:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!