内容の概要: XML スキーマは、DTD と同様に、XML ドキュメントの構造とコンテンツ スキーマの定義と記述を担当します。 XML ドキュメント内に存在する要素と要素間の関係を定義し、要素の データ型 と 属性 を定義できます。
XML スキーマとは
XML スキーマは、DTD と同様に、XML ドキュメントの構造とコンテンツ スキーマの定義と記述を担当します。 XML ドキュメント内に存在する要素と要素間の関係を定義し、要素と属性のデータ型を定義できます。
XML スキーマ自体は XML 文書であり、XML 構文構造に準拠しています。これは、一般的な XML パーサーで解析できます。
スキーマを使用する理由
XML 構造とデータ型を定義するためにすでに DTD を使用しているのに、なぜスキーマが必要なのでしょうか?
DTD には多くの欠陥があるためです:
1) DTD は 正規表現 に基づいており、記述能力は限られています。
2) DTD はデータ型をサポートしておらず、ほとんどのアプリケーション環境では不十分です。
3) DTD の 制約 定義能力が不十分であり、XML インスタンス ドキュメントのより詳細なセマンティクスを作成できません
。 4) DTD の構造は十分に構造化されておらず、再利用のコストが比較的高くなります
5) DTD は記述方法として XML を使用せず、DTD の構築とアクセスのための標準のプログラミングインターフェースがありません。 DTD (不可能) DTD メンテナンスには標準のプログラミング方法を使用します。
XML スキーマは、これらの DTD の欠点に対処するように設計されています。XML スキーマの利点は次のとおりです:
1) XML スキーマは XML に基づいており、特別な構文はありません
2) XML は他の XML ファイルと同様に解析および処理できます。
3) XML スキーマは一連のデータ型 (int、float、Boolean、date など) をサポートします。
4) XML スキーマは拡張可能なデータ モデルを提供します。
5) XML スキーマは包括的な名前空間をサポートします。
6) XML スキーマは属性グループをサポートします。
単純な XML スキーマ ドキュメント
このスキーマでは要素が定義されています:数量、その型は nonNegativeInteger (非負の整数)、xmlns はスキーマの名前空間であり、上記のパート 3 で説明されています。 。
次の XML フラグメントは正当です:
<quantity>5</quantity>
次の XML フラグメントは不正です:
<quantity>-4</quantiy>
スキーマの型
スキーマには主に要素、属性、コメント (表記法) の 3 つのコンポーネントが含まれています。
これら 3 つの基本コンポーネントは、次のコンポーネントに結合することもできます:
a) 型定義コンポーネント: 単純型と複合型
b) コンポーネント コンポーネント
c) 属性コンポーネント
単純型
XMLスキーマは、要素の内容と属性値を記述するために使用できるいくつかの組み込みデータ型を定義します。
要素に数値、文字列、またはその他のデータのみが含まれ、サブ要素が含まれない場合、その要素は単純型と呼ばれます。
写真の元素量の通り、シンプルなタイプです。その要素の内容は、属性とサブ要素を除いて、負ではない整数である必要があります。
<quantity>some</quantity>
すべての組み込み単純型
プリミティブ型
string,boolean,decimal,float,double,duration datetime,time,date,gYearMonth,gYear,gMonthDay, dDay,gMonth,hexBinary,base64Binary,any URI,QName NOTATION
派生型 (括弧内の基本型)
normalizedString(string),language(tonken),token(normalizedString) NMTOKEN(token),Name(token),NCName(Name),ID(NCName),IDREF(NCName) IDREFS(list of IDREF),ENTITY(NCName),ENTITIES(list of ENTITY) integer(decimal),nonPositiveInteger(integer), negativeInteger(noPositiveInteger),long(integer),int(long), short(int),byte(short),nonNegativeInteger(integer) unsignedLong(nonNegativeInteger),unsignedInt(unsignedLong), unsignedShort(unsignedInt),unsignedByte(unsignedShort), positiveInteger(nonNegativeInteger)
単純型の作成
この図では、最初に単純な型、quantityType、Inherited を作成します。 integer から、minInclusive と maxInclusive は最小値 2 と最大値 5 を定義します。最後に、要素数量のタイプをquantityTypeとして定義します。
正确: <quantity>3</quantity> 错误: <quantity>10</quantity> <qauntity>aaa</quantity>
制限を使用すると、特定の数値または特定のテキストのみを受け入れるように制限できます。
基本方面:equal,ordered,bounded,cardinality,numeric 限制方面:length,minLength,maxLength pattern,enumeration whiteSpace maxInclusive,maxExclusive,minInclusive,minExclusive totalDigits,fractionDigits
単純なタイプの例1
このSKUタイプの値: 3つの数字の後にハイフンが続き、その後に2つの大文字が続きます手紙。
パターンの後に正規表現が続きます。正規表現の構文については、他の書籍を参照してください。
正确: <ourSKU>123-AB</ourSKU> 错误: <ourSKU>abc-AB</ourSKU> <ourSKU>123-ab</ourSKU>
単純型 2 の例
これは、アメリカの州の名前を記述するために使用される USState 型であり、値を取得する場合は、列挙によってリストされている州名のみを取得できます。 。