DTDと同様、スキーマとは1つまたは服すのXML文書の内容を定義するものです。どの要素をでおのような順番で含めることができるか、内容として何を含めるか、これらの属性に何を含めるかを定義します。(実際には、DTDは広義ではスキーマの一種です。ただし、ここではXML Schema言語で書かれたもののことをスキーマと呼びます)
XML Schemaで描かれたスキーマに比べると、DTDにはいくつかの欠点があります。第一に、DTDはXMLとあまり関係のない構文で書くので、XMLパーサーでは解析できません。第二に、DTD内の宣言はすべてグローバルです。つまり、使用する状況が違っても2つの要素を同じ名前で定義することはできません。最後に、最も重要なのは、DTDでは特定の要素や属性に含める情報の種類を指定で機内ということです。
W3Cが開発した XML Schema言語では、このような問題点を解決しています。 XML SchemaはXMLそのものでかかれ、グローバル要素(XML文書全体で同じように使う要素)とローカル要素(状況によって意味の異なる要素)の療法を定義することができます。データ型を指定すると、1つの要素には整数を、別の要素には基幹を、また別の要素には文字列を設定するように指定することができます。つまり、XML Schemaでは、XML文書の内容をとても柔軟に制御することができます。1. XML Schema
001. 単純型と複雑型
002. ローカル宣言とグローバル宣言
003. スキーマを開始する
004. スキーマの位置を指定する
005. スキーマにコメントをつける
2. 単純型の定義
006. 単純型の要素を宣言する
007. 日付型と時刻型を使う
008. 数値型を使う
009. カスタム単純型を作成する
010. 匿名カスタム型を使う
011. 設定できる値を指定する
012. 単純型のパターンを指定する
013. 設定できる値の範囲を指定する
014. 単純型の長さを制限する
015. 数値の桁数を制限する
016. リスト型を作成する
017. 要素の内容を事前定義する
3. 複雑型
018. 要素のみを含む要素を定義する
019. シーケンス内の要素を定義する
020. 選択肢を作成する
021. 任意の順序で指定できる要素を定義する
022. 名前付きグループを定義する
023. 名前付きグループを参照する
024. 定義済みの要素を参照する
025. 属性を定義する(一意の値を持つ属性)
026. 使用回数を指定する
027. テキストのみの要素を定義する
028. 空の要素を定義する
029. 混合コンテンツを含む要素を定義する
030. 複雑型を基に複雑型を定義する
031. 複雑型の要素を宣言する
032. 匿名複雑型の要素を宣言する
033. 属性を宣言する
034. 属性を必須指定/指定禁止にする
035. 属性の内容を事前定義する
036. 属性グループを定義する
037. 属性グループを参照する
4. XMLでの名前空間の使用
038. 名前空間を作成する
039. 既定の名前空間を宣言する
040. 個々の要素の名前空間を宣言する
041. 名前空間が属性に与える影響
042. 名前空間とDTDに対して有効な文書
5. 名前空間、スキーマ、検証
043. スキーマと名前空間
044. 名前空間に要素を追加する
045. すべてのローカル宣言要素を追加する
046. 1つのローカル宣言要素を名前空間に追加する
047. 名前空間を使ってコンポーネントを参照する
048. 既定のスキーマのスキーマ
049. 名前空間とXML検証
050. スキーマの位置を指定する
051. 複数のファイルのスキーマ
052. コンポーネントをインポートする