XMLスキーマチュートリアル
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ドキュメントの正当な構成要素を定義することです。
- ドキュメントに表示できる要素と属性
- 子要素の数(および順序)
- 要素と属性のデータ型
- 要素と属性のデフォルト値と固定値
なぜXMLスキーマを学ぶのですか?
XMLの世界では、何百もの標準化されたXML形式が日常的に使用されています。
これらのXML標準の多くは、XMLスキーマによって定義されています。
XMLスキーマは、DTDに代わるXMLベースの(そしてより強力な)代替手段です。
XMLスキーマはデータ型をサポートします
XMLスキーマの最大の強みの1つは、データ型のサポートです。
- 許容されるドキュメントの内容を説明する方が簡単です
- データの正確さを検証する方が簡単です
- データファセット(データの制限)を定義する方が簡単です
- データパターン(データ形式)の定義が簡単
- 異なるデータ型間でデータを変換する方が簡単です
XMLスキーマはXML構文を使用します
XMLスキーマのもう1つの大きな強みは、XMLで記述されていることです。
- 新しい言語を学ぶ必要はありません
- XMLエディターを使用してスキーマファイルを編集できます
- XMLパーサーを使用してスキーマファイルを解析できます
- XMLDOMを使用してスキーマを操作できます
- XSLTを使用してスキーマを変換できます
XMLスキーマは、XMLで記述されているため、拡張可能です。
拡張可能なスキーマ定義を使用すると、次のことができます。
- スキーマを他のスキーマで再利用する
- 標準型から派生した独自のデータ型を作成します
- 同じドキュメント内の複数のスキーマを参照する
XMLスキーマはデータ通信を保護します
送信者から受信者にデータを送信するときは、両方の部分がコンテンツに対して同じ「期待」を持っていることが不可欠です。
XMLスキーマを使用すると、送信者は受信者が理解できる方法でデータを記述できます。
「2004年3月11日」のような日付は、一部の国では11月3日と解釈され、他の国では3月11日と解釈されます。
ただし、次のようなデータ型のXML要素:
<date type = "date"> 2004-03-11 </ date>
XMLデータ型「date」には「YYYY-MM-DD」の形式が必要なため、コンテンツの相互理解が保証されます。
整形式では不十分です
整形式のXMLドキュメントは、次のようなXML構文規則に準拠するドキュメントです。
- XML宣言で始まる必要があります
- 一意のルート要素が1つ必要です
- 開始タグには、一致する終了タグが必要です
- 要素では大文字と小文字が区別されます
- すべての要素を閉じる必要があります
- すべての要素を適切にネストする必要があります
- すべての属性値は引用符で囲む必要があります
- エンティティは特殊文字に使用する必要があります
ドキュメントが整形式であっても、エラーが含まれている可能性があり、それらのエラーは深刻な結果をもたらす可能性があります。
次の状況を考えてみてください。5台のレーザープリンターではなく、5台のレーザープリンターを注文します。XMLスキーマを使用すると、これらのエラーのほとんどを検証ソフトウェアで検出できます。