Dreamweaver TechniqueJAVA Script サンプル | CSS sample | JAVA Applet sample | Flash Sample
HTML4.0 riference | DynamicHTMLXHTML | XML sample | XSLT sample | RIKO's ASP Trial

単純型と複雑型

■ 単純型と複雑型

スキーまでは、文書の内容が「単純型」と「複雑型」の2種類に分かれます。テキストのみを含む要素は単純型です。他の要素や属性を含む要素は複雑型です。(属性はテキストしか含まないので、単純型と考えられます)
単純型について詳しく見てみましょう。
DTDではテキストのみを含む要素には #PCDATAを指定します。この要素の内容には、名前、数値、日付など、殆どどのようなものでも含めることができます。XML Schemaでは、要素に単純型定義を割り当てることによって、その要素に含めるテキストの正確な型を指定することができます。日付、整数、文字列など予め用意されている単純型がいくつかあり、これらは何も手を加えずにそのまま使用できます。このほかに、独自の単純型を定義すれば、要素の内容をさらに細かく指定することができます。単純型の定義方法と使用方法については、後述します。
複雑型の要素としては、文書の内容ではなく文書の構造について記述するものが多いようです。基本的な複雑型は4種類あります。これらは、ほかの要素だけを含む要素、要素とテキストの両方を含むテキスト、テキストだけを含むテキスト、空の要素です。これらの各要素には属性を含めることもできます。自分のXML文書に必要な複雑型だけを適宜することができます。詳細については後述します。
単純型と複雑型のどちらにも名前をつけることができます。名前を付けた型は、スキーマ内の別の場所でも再利用できます。または、匿名にすることもできます。匿名の型はそれを定義した要素内でしか使用できません。

XSDコード
<xsd:element name="weight" type="xsd:string" / >
<xsd:element name="population" type="xsd:integer" / >

これらの2つの要素は標準単純型を使って定義しています。weight要素には文字列、population要素には整数しか設定できません。

XSDコード
<xsd:simpleType name="zipcodeType" >
   <xsd:restriction base="xsd:string">
   <xsd:pattern value="\d(5) (-\d(4))?" />
   </xsd:restriction">
</xsd:simpleType>

このカスタム単純型では、zipcodeType要素の内容の5桁の数値パターンの文字列と、任意指定のハイフン、4桁の数値に限定しています。

XSDコード
<xsd:complexType name="endType" >
   <xsd:sequence>
   <xsd:element name="patient" type="patientType" minOccurs="1" maxOccurs="unbounded" / >
   </xsd:sequence>
</xsd:complexType>

この複雑型定義では、ほかの1つの要素(patient要素。patient要素はさらにpatientTypeというほかの複雑型で定義されている)を含むように定義されています。endType複雑型を使って、特定の要素(patient要素を含む要素)を定義することができます。

<<<戻る

R HOUSE | RIKO's Trial Page | Shirley's Pettit Case | Shirley's i-box | Shirley's little box