XSDは、XMLドキュメントの構造を記述するための言語です。 XMLスキーマとも呼ばれます。 XMLパーサーは、XMLスキーマを使用して、XMLドキュメントの正しい構文だけでなく、その構造、コンテンツモデル、およびデータ型もチェックできます。
このアプローチにより、オブジェクト指向プログラミング言語でメモリ内にオブジェクトを簡単に作成できます。これは、XMLを通常のテキストファイルとして解析するよりも間違いなく便利です。
さらに、XSDは拡張可能であり、既製の辞書を接続して、SOAPなどのWebサービスなどの一般的なタスクを記述することができます。
また、XSDにはドキュメントツールが組み込まれているため、追加の説明を必要としない自己完結型のドキュメントを作成できます。
例として、Habrのアカウント構造の一部を説明するXSDドキュメントを考えます。
XSDスキーマのテキストと、このスキーマに対応する
XMLドキュメントは、サイズが大きいため記事に含めませんでした。
図の最初の行は、ドキュメントがXMLドキュメントであり、UTF-8エンコードを使用していることを示しています。
<? xml version ="1.0" encoding ="UTF-8" ? >
次の行は、ドキュメントの主要な要素である
habra_userの説明から始まります。
< xs:element name ="habra_user" >
要素を文書化する行:
< xs:annotation >
< xs:documentation > . </ xs:documentation >
</ xs:annotation >
<xs:complexType>タグは、「複雑な」
user_nameデータ
型を記述し
ます 。 必要に応じて、
contact_infoと同様に、別のデータ型としてレンダリングできます。 これを行うには、
<xs:complexType>ブロックを
<xs:schema>に転送して、
name属性を指定し、
type属性を要素に設定する必要があります。
要素
user_name 、
first_name 、
last_nameは文字列タイプで、アカウント所有者のユーザー、名前、および姓を記述します。
date_of_birth要素には日付データ型があり、生年月日を記述します。
登録日は、独自の
customDateTimeデータ
型を持つ
register_dateによって記述さ
れます。 このタグの値は、
value属性を使用して設定されます。 これは線で示されます。
< xs:attribute name ="value" use ="required" >
さらに、属性が必要です。 値が要件を満たすために、「チェック」について説明します。
< xs:simpleType >
< xs:restriction base ="xs:string" >
< xs:length value ="19" />
< xs:pattern value ="[1-2][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]" />
</ xs:restriction >
</ xs:simpleType >
この場合、文字列の長さは常に19になり、これは
<xs:length>タグで指定され、値自体は
<xs:pattern>タグで指定されたパターンに対応します。
contact_infoおよび
blog要素は配列
です。maxOccurs = "unbounded"属性はこれを示します。
<xs:choice>タグは、ネストされた要素がICQまたはlinkedin要素のいずれかになることを決定します。
<xs:sequence>タグは、ネストされた要素がそのシーケンスの
blog_nameおよび
blog_urlであることを示します。 順序が重要でない場合は、
<xs:all>タグを使用します。
XSDスキームの詳細については、
Wikipediaおよび
W3Cを参照してください。
Altova XMLSpyを使用してレイアウトを作成しました。
ご清聴ありがとうございました!