- PR -

XML Schema 基礎

1
投稿者投稿内容
hide
会議室デビュー日: 2004/04/27
投稿数: 7
投稿日時: 2004-05-18 13:00
基礎だと思うのですが、どなたかご存知の方がいらっしゃいましたら、
よろしくお願い致します。

1.出現回数に関しまして
 下記条件でのスキーマは存在するのでしょうか?
  @ある要素Aは1回のみ出現し、ある要素Bは1回以上出現する。
  A要素Aと要素Bの出現順序は問わない。

 「complexType」で、「all」指定の場合、「element」要素の「maxOccurs」属性は、
 「0」か「1」しか指定できませんよね。
 「all」でかつ「maxOccurs="unbounded"」を指定したいのですが。。

 「sequence」にするしかないのでしょうか。

 下記に例を示します。
 
コード:
  ・XMLファイル
   ・・・宣言部省略
   <root>
       <A>
        <!-- Aは必ず1回出現 -->
        ・・・中略・・・
       </A>
       <B>
        ・・・中略・・・
       </B>
       <B>
        <!-- Bは複数回出現 -->
        ・・・中略・・・
       </B>
      </root>

  ・スキーマファイル
   ・・・宣言部省略
      <xs:element name="root">
       <xs:complexType>
        <xs:sequence><!-- ←AとBの出現順序を問わないので「xs:all」にしたい -->
         <xs:element name="A" maxOccurs="1">
          ・・・中略・・・
         </xs:element>
         <xs:element name="B" maxOccurs="unbounded"><!-- allにするとmaxOccursに制限 -->
          ・・・中略・・・
         </xs:element>
        </xs:sequence>
       以下略
  


2.制限の複合
 @数値型で、下限、上限等の制限を設定
  (*型はこだわりません。何らかの制限が掛けられているものと解釈して下さい。)
 A要素値内容は省略(空要素)可能

 上記の複合定義はできるのでしょうか?
 やはりアプリケーション側でチェックしなければならないのでしょうか?
 
 下記に例を示します。
 
コード:
  ・XMLファイル
   <intA>1</intA>  <!-- ←妥当 -->
   <intA></intA>   <!-- ←妥当 -->

  ・スキーマファイル
      <!-- 制限定義 -->
   <xs:simpleType name="IntType"> 
       <xs:restriction base="xs:int">
         <xs:minInclusive value="0">   <!-- 下限「0」に制限 -->
         <xs:maxInclusive value="10"> <!-- 上限「10」に制限 -->
      </xs:simpleType>         <!-- かつ空要素を許可したいのですが。。 -->


上記2つの内、どちらか片方だけでも構いませんので、
よろしくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)