ホームページ  >  記事  >  バックエンド開発  >  クレイジーXML学習記(7) -----------XMLスキーマ

クレイジーXML学習記(7) -----------XMLスキーマ

黄舟
黄舟オリジナル
2017-02-21 14:34:591432ブラウズ


XML スキーマは、XML ベースの DTD の置き換えです。

XML スキーマは、XML ドキュメントの構造を記述します。

XML スキーマ言語は、XSD (XML Schema Definition) として参照することもできます。

知っておくべき基本的な知識

次に進む前に、次の知識の基本を理解しておく必要があります:

  • HTML / XHTML

  • XML とXML 名前空間

  • DTD の基本的な理解

これらのプロジェクトを最初に学習したい場合は、ホームページでこれらのチュートリアルにアクセスしてください。

XML スキーマとは何ですか?

XML スキーマの役割は、DTD と同様に、XML ドキュメントの法的な構成要素を定義することです。

XML スキーマ:

  • ドキュメントに表示できる要素を定義する

  • ドキュメントに表示できる属性を定義する

  • どの要素が子要素であるかを定義する

  • 子要素の順序を定義します

  • 子要素の数を定義します

  • 要素が空かどうか、またはテキストを含めることができるかどうかを定義します

  • データ型要素と属性の定義

  • 要素と属性のデフォルト値と固定値を定義します

XML スキーマは DTD の後継です

私たちは、ほとんどの Web アプリケーションで XML スキーマが間もなく DTD に置き換わると考えています。

その理由は次のとおりです:

  • XML スキーマは将来のニーズに合わせて拡張できます

  • XML スキーマはより完全で強力です

  • XML スキーマは、ベースで記述されていますにXML

  • XML スキーマはデータ型をサポートします

  • XML スキーマは名前空間をサポートします

XML スキーマを使用する理由


XML スキーマは DTD よりも強力です。

XML スキーマはデータ型をサポートします

XML スキーマの最も重要な機能の 1 つは、データ型のサポートです。

データ型のサポート:

  • により、許可されたドキュメントのコンテンツの記述が容易になります

  • により、データの正確性の検証が容易になります

  • による作業が容易になりますデータベースからのデータ

  • データ制約 (データ ファセット) の定義が簡単になります

  • データ モデル (またはデータ形式) の定義が簡単になります

  • データをより簡単に変換できます異なるデータ型間

編集者注: データ制約、またはファセットは、XML スキーマ プロトタイプの用語であり、中国語で「面」と翻訳でき、データを制約するために使用されます。タイプ。

XML スキーマは XML 構文を使用します

XML スキーマのもう 1 つの重要な特徴は、XML で記述されていることです。

XML から XML スキーマを記述することには、多くの利点があります:

  • 新しい言語を学ぶ必要がない

  • XML エディタを使用してスキーマ ファイルを編集できる

  • なる使用されるパーサー スキーマ ファイルを解析するため

  • スキーマは XML DOM を通じて処理できます

  • スキーマは XSLT を通じて変換できます

XML スキーマはデータ通信を保護します

データが送信者から受信者に送信されるとき、重要なのは、両方の当事者がコンテンツに関して同じ「期待」を持つ必要があるということです。

XML スキーマを使用すると、送信者は受信者が理解できる方法でデータを記述することができます。

「03-11-2004」などのデータの種類は、一部の国では 11 月 3 日として解釈されますが、他の国では 3 月 11 日として解釈されます。

ただし、349a8bdc82a4be11e111653760fb49d72004-03-11fa78126cab04dbaa4bc5e7d79b5cd99e のようなデータ型を持つ XML 要素は、XML データが必須であるため、コンテンツの一貫した理解を保証します。 「日付」タイプの形式は「YYYY-MM-DD」です。

XML スキーマは拡張可能です

XML スキーマは XML で記述されているため拡張可能です。

拡張可能なスキーマ定義を使用すると、次のことが可能になります:

  • スキーマを他のスキーマで再利用する

  • 標準型から派生した独自のデータ型を作成する

  • で複数のスキーマを参照する同じドキュメント

整形式だけでは十分ではありません

XML 構文に準拠するドキュメントを、次のような整形式 XML ドキュメントと呼びます。

  • XML 宣言

  • 一意のルート要素が必要です

  • 開始タグは終了タグと一致する必要があります

  • 要素は大文字と小文字が区別されます

  • 閉店する

  • すべての要素は適切にネストされている必要があります

  • 特殊文字にはエンティティを使用する必要があります

文書が整形式であっても、それらの要素に次の文字が含まれていないという保証はありませんこれらのエラーは重大な結果をもたらす可能性があります。

次のシナリオを検討してください: 5 台ではなく、5 ダースのレーザー プリンターを注文しました。 XML スキーマを使用すると、これらのエラーのほとんどは検証ソフトウェアによって検出されます。

XML Schemaの使用方法


XMLドキュメントはDTDまたはXML Schemaを参照できます。

簡単なXMLドキュメント:

「note.xml」という名前のこのXMLドキュメントを見てください:

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;t forget the meeting!</body>
</note>

DTDファイル

これは以下のものです例は、「note.dtd」という名前の DTD ファイルで、上記の XML ドキュメントの要素を定義します。

<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

1 行目は、note 要素に 4 つのサブ要素 (to、from、Heading、body) があることを定義します。

2行目から5行目では、to、from、見出し、本文要素の型を「#PCDATA」として定義しています。

XML スキーマ

次の例は、上記の XML ドキュメントの要素を定義する「note.xsd」という名前の XML スキーマ ファイルです。

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">

<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>

note 要素は複合タイプです他の子要素が含まれているためです。他の要素 (to、from、見出し、本文) には他の要素が含まれていないため、単純型になります。複合型と単純型については、次の章で詳しく説明します。

DTDへの参照

このファイルにはDTDへの参照が含まれています:

<?xml version="1.0"?><!DOCTYPE note SYSTEM "http://www.w3school.com.cn/dtd/note.dtd"><note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;t forget the meeting!</body>
</note>

XMLスキーマへの参照

このファイルXML スキーマへの参照が含まれています :

<?xml version="1.0"?>
<note
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.w3school.com.cn note.xsd">

<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don&#39;t forget the meeting!</body>
</note>

上記はクレイジー XML 学習ノート (7) の内容です----------XML スキーマの詳細については、PHP 中国語に注意してください。ウェブサイト (www.php.cn)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。