XML スキーマの簡単な紹介

黄舟
リリース: 2017-03-27 16:42:16
オリジナル
1374 人が閲覧しました

XML スキーマは DTD (DTD 構文の概要) と同じであり、XML ドキュメントのタイプを 制約し、その構造、要素、属性、データ型を決定します。また、XML ドキュメントで使用される要素、エンティティ、要素の属性、要素とエンティティ間の関係に対する制約も含まれます。 XML スキーマは Microsoft によって最初に提案され、W3C によって標準として受け入れられました。 DTD とは異なり、XML スキーマ ファイルは XML 構文を使用します。その設計目的は DTD と多くの点で似ていますが、機能と拡張性の点では DTD を上回っています。それらの違いについていくつか説明しましょう:

1. XML スキーマは、独自の構文を持つ DTD とは異なり、XML ドキュメントです。開発者にとって、整形式の XML ドキュメントを作成するために両方の構文を知る必要はありません。 XML パーサーを開発する場合、XML スキーマも XML 構文であるため、実装とサポートがより便利です。同時に、XML スキーマは XML の拡張可能な利点を継承しています。

2. データ型を定義します。 DTD ファイルでは、データは文字列型または文字列型のサブ要素 (PCDATA、CDATA、ID など) としてのみ宣言できます。 XML スキーマでは、整数、

浮動小数点型、ブール型、日付型など、プログラミング言語と同じ豊富なデータ型を定義できます。この利点は明らかです。整数データを使用するプログラムを作成する場合、それが DTD で定義されている場合は、それを文字型から整数型に変換する必要がありますが、XML スキーマは整数型として直接定義できます。

3.XML スキーマはオープンな

モデル です。たとえば、次の XML ドキュメント:

<item>
  <name>TG/DTLatte</name>
  <quantity>1</quantity>
  <price>2.00</price>
</item>
ログイン後にコピー

以下はその DTD とスキーマの説明です:

DTD:

<!ELEMENT name (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT item (name,quantity,price)>
ログイン後にコピー

schema

<ElementType name="name"/>
<ElementType name="quantity" dt:type="int"/>>
<ElementType name="price" dt:type="fixed.14.4"/>
<ElementType name="item" model="open">
<element type="name"/>
<element type="quantity"/>
<element type="price"/>
</ElementType>
ログイン後にコピー

上記の XML ドキュメントが 10:21 PDT 要素は次のようになります:

<item xmlns:myItm="urn:myItems">
<name>TG/DT Latte</name>
<quantity>1</quantity>
<price>2.00</price>
<myItem:time>10:21 PDT</myItem:time>
</item>
ログイン後にコピー

上記の DTD では検証エラーが発生しますが、スキーマでは検証エラーが発生しません。

IV.

名前空間の統合。 XML ドキュメントは 1 つの DTD ドキュメントでのみ記述できますが、複数の XML スキーマ ドキュメントで記述できます。後者は名前空間を完全にサポートします。

以上がXML スキーマの簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!