XMLスキーマとは何ですか?
XMLスキーマは、XML文書の構造を記述する。
XMLスキーマ言語も、XMLスキーマ定義と呼ぶ(XSD)
XSD例
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XMLスキーマの目的は、XML文書の法的なビルディング・ブロックを定義することです:
- 文書に表示できる要素と属性
- 数(and order of)子要素
- 要素と属性のデータ型
- 要素と属性のデフォルトおよび固定値
なぜXMLスキーマを学ぶのか?
XMLの世界では、標準化されたXML形式の何百ものは、日常的に使用されています。
これらのXML標準の多くは、XMLスキーマで定義されています。
XMLスキーマは、XMLベースである(and more powerful) DTDに代わります。
XMLスキーマのサポートのデータ型
XMLスキーマの最大の強みの一つは、データ型のサポートです。
- 許容可能なドキュメントのコンテンツを記述することが容易です
- データの正確性を検証するために容易です
- これは、データのファセットを定義する方が簡単です(restrictions on data)
- これは、データのパターンを定義することが容易である(data formats)
- 異なるデータ型の間でデータを変換することが容易です
XMLスキーマは、XML構文を使用します
XMLスキーマについてのもう一つの大きな強みは、彼らはXMLで記述されていることです。
- あなたは新しい言語を習得する必要はありません
- あなたのスキーマファイルを編集するには、XMLエディタを使用することができます
- あなたのスキーマファイルを解析するために、あなたのXMLパーサーを使用することができます
- あなたは、XML DOMを使用してスキーマを操作することができます
- あなたは、XSLTを使用してスキーマを変換することができます
彼らはXMLで書かれているので、XMLスキーマは、拡張可能です。
あなたができる拡張可能なスキーマ定義を持ちます:
- 他のスキーマであなたのスキーマを再利用
- 標準タイプから派生し、独自のデータ型を作成します。
- 同じドキュメント内の複数のスキーマを参照します
XMLスキーマの安全なデータ通信
送信機から受信機へデータを送信する場合、両方の部分が同じ有することが必須である"expectations"のコンテンツについては。
XMLスキーマでは、送信側は受信側が理解できるような方法でデータを記述することができます。
日付は次のように: "03-11-2004" 、いくつかの国では、3.Novemberよう11.Marchなど他の国で解釈されます。
しかし、このようなデータ型を持つXML要素:
<date type="date">2004-03-11</date>
XMLデータ型ので、コンテンツの相互理解を確実に"date"形式が必要です"YYYY-MM-DD" 。
整形式では十分ではありません
整形式のXML文書は次のように、XML構文規則に準拠した文書です。
- それは、XML宣言で始める必要があります
- それは1ユニークなルート要素を持っている必要があります
- 開始タグには終了タグが一致する必要があります
- 要素は大文字と小文字が区別されます
- すべての要素が閉じなければなりません
- すべての要素が適切にネストする必要があります
- すべての属性値は引用符で囲む必要があります
- エンティティは、特殊文字を使用する必要があります
文書が整形されていても、それらは依然としてエラーを含むことができ、それらのエラーは重大な結果を有することができます。
次のような状況を考える:あなたはレーザープリンタの5グロス、代わりの5レーザープリンタを注文。 XMLスキーマでは、これらのエラーのほとんどは、あなたの妥当性検証ソフトウェアによってキャッチすることができます。