XML スキーマは、XML ベースの DTD の置き換えです。
XML スキーマは、XML ドキュメントの構造を記述します。
XML スキーマ言語は、XSD (XML Schema Definition) として参照することもできます。
次に進む前に、次の知識の基本を理解しておく必要があります:
HTML / XHTML
XML とXML 名前空間
DTD の基本的な理解
これらのプロジェクトを最初に学習したい場合は、ホームページでこれらのチュートリアルにアクセスしてください。
XML スキーマの役割は、DTD と同様に、XML ドキュメントの法的な構成要素を定義することです。
ドキュメントに表示できる要素を定義する
ドキュメントに表示できる属性を定義する
どの要素が子要素であるかを定義する
子要素の順序を定義します
子要素の数を定義します
要素が空かどうか、またはテキストを含めることができるかどうかを定義します
データ型要素と属性の定義
要素と属性のデフォルト値と固定値を定義します
XML スキーマは DTD の後継です
私たちは、ほとんどの Web アプリケーションで XML スキーマが間もなく DTD に置き換わると考えています。
その理由は次のとおりです:
XML スキーマは将来のニーズに合わせて拡張できます
XML スキーマはより完全で強力です
XML スキーマは、ベースで記述されていますにXML
XML スキーマはデータ型をサポートします
XML スキーマは名前空間をサポートします
XML スキーマを使用する理由
XML スキーマは DTD よりも強力です。
XML スキーマの最も重要な機能の 1 つは、データ型のサポートです。
により、許可されたドキュメントのコンテンツの記述が容易になります
により、データの正確性の検証が容易になります
による作業が容易になりますデータベースからのデータ
データ制約 (データ ファセット) の定義が簡単になります
データ モデル (またはデータ形式) の定義が簡単になります
データをより簡単に変換できます異なるデータ型間
編集者注: データ制約、またはファセットは、XML スキーマ プロトタイプの用語であり、中国語で「面」と翻訳でき、データを制約するために使用されます。タイプ。
XML スキーマのもう 1 つの重要な特徴は、XML で記述されていることです。
新しい言語を学ぶ必要がない
XML エディタを使用してスキーマ ファイルを編集できる
なる使用されるパーサー スキーマ ファイルを解析するため
スキーマは XML DOM を通じて処理できます
スキーマは XSLT を通じて変換できます
データが送信者から受信者に送信されるとき、重要なのは、両方の当事者がコンテンツに関して同じ「期待」を持つ必要があるということです。
XML スキーマを使用すると、送信者は受信者が理解できる方法でデータを記述することができます。
「03-11-2004」などのデータの種類は、一部の国では 11 月 3 日として解釈されますが、他の国では 3 月 11 日として解釈されます。
ただし、349a8bdc82a4be11e111653760fb49d72004-03-11fa78126cab04dbaa4bc5e7d79b5cd99e のようなデータ型を持つ XML 要素は、XML データが必須であるため、コンテンツの一貫した理解を保証します。 「日付」タイプの形式は「YYYY-MM-DD」です。
XML スキーマは XML で記述されているため拡張可能です。
スキーマを他のスキーマで再利用する
標準型から派生した独自のデータ型を作成する
で複数のスキーマを参照する同じドキュメント
XML 構文に準拠するドキュメントを、次のような整形式 XML ドキュメントと呼びます。
XML 宣言
一意のルート要素が必要です
開始タグは終了タグと一致する必要があります
要素は大文字と小文字が区別されます
閉店する
すべての要素は適切にネストされている必要があります
特殊文字にはエンティティを使用する必要があります
文書が整形式であっても、それらの要素に次の文字が含まれていないという保証はありませんこれらのエラーは重大な結果をもたらす可能性があります。
次のシナリオを検討してください: 5 台ではなく、5 ダースのレーザー プリンターを注文しました。 XML スキーマを使用すると、これらのエラーのほとんどは検証ソフトウェアによって検出されます。
XML Schemaの使用方法
XMLドキュメントはDTDまたはXML Schemaを参照できます。
「note.xml」という名前のこのXMLドキュメントを見てください:
<?xml version="1.0"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
これは以下のものです例は、「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 ドキュメントの要素を定義する「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への参照が含まれています:
<?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't forget the meeting!</body> </note>
このファイル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't forget the meeting!</body> </note>
上記はクレイジー XML 学習ノート (7) の内容です----------XML スキーマの詳細については、PHP 中国語に注意してください。ウェブサイト (www.php.cn)!