10.XML Schema を書く本章では、XML Schemaのまとめとして、具体的にXML Schemaを書いてみたいと思います。
XML Schema 10章 XML Schema を書く
10.1 受注伝票本章では、受注伝票の情報をXMLで保存し、そのスキーマをXML Schemaで記述することを考えます.
まず、必要なことは、データの木構造を決定することです。XMLでは、データを木構造で表現します。受注伝票のデータを「木構造」のデータとして捉えなおす必要があります。 ![]() 受注伝票には、受注日、受注番号が一意に決まります。また、受注伝票には、顧客の情報、商品の情報が含まれます。顧客の情報には顧客名、顧客住所が含まれます。商品情報には、商品番号、商品名、数量、単価、合計金額が含まれます。受注商品は複数あります。各商品の情報には、商品番号、商品名、数量、単価の情報が含まれます。 データを木構造に記述したら、各ノードを要素にするか、属性にするか、決定します。属性は子要素をもつことが出来ないので、「ツリー図」の「葉」にあたる部分しか、属性にすることは出来ません。また、属性はひとつの要素に複数指定することは出来ません。それを踏まえて、属性とするものを決定します。受注伝票では、「受注日」と「受注番号」を属性とします。 次に各Nodeの型を決定していきます。まず、各Nodeの型がどのTypeなのか、判断します.
「受注日」、「受注番号」の属性は、当然Simple Typeです。また、「顧客名」「顧客住所」「商品番号」「商品名」「数量」「単価」などの要素も、子供要素、属性をもたないので、Simple Typeになります。「ツリー図」で表したときの「葉」の部分が、Simple Typeになります。他の「受注伝票」「顧客」「受注商品」「商品」の各要素はすべて、Complex Typeになります。 Simple TypeのNodeに対しては、どのような型にするか検討します.既存のデータ型と一致する場合はそれを使用します。(既存のデータ型へのリンク)
商品番号以外は既存のデータ型を使用して、記述します。商品番号のデータ型は新たに定義します。 Complex Typeに関しては、さらに、Content Typeによって、宣言の方法が異なります。内容(開始タグと終了タグの間)がどうなっているか確認します。Content Typeは、3種類あります。
そこで、もう一度、木構造を眺めてみますと、このスキーマのComplex Typeの要素は、すべてComplex Contentのもののみであることがわかります。Complex ContentのComplex Typeの場合、子供要素の出現回数と、出現順番を決定します。Complex Typeのnodeは、受注伝票、顧客、受注商品、商品の4つの要素です。これらはすべて、COmplex ContentのComplex Typeです。それぞれの要素について、子供要素の出現回数、出現の順番を決定します。
これで、受注伝票のデータ設計が完了しました。後は、この内容をXML Schemaで記述すれば完成です。 |
![]()
![]()
|