簡単なXML Schemaサンプルコードの詳細な説明

黄舟
リリース: 2017-03-07 16:36:21
オリジナル
1430 人が閲覧しました

DTD の構文は非常に複雑で、XML ファイルの標準に準拠しておらず、独自のシステムを形成していることがわかります。つまり、DTD ドキュメント自体は、整形式の XML ドキュメントではありません。現在、多くの XML アプリケーションが使用されているため、DTD についての上記の概要は、誰もが DTD ファイルを理解し、必要に応じて簡単な DTD ファイルを作成できるようにすることを目的としています。 DTD に基づいて構築されています。



DTD のもう 1 つの代替案は、W3C によって定義されたスキーマです。スキーマは文字通り、パターン、アウトライン、計画、計画などに変換できます。その基本的な意味は、XML ドキュメントのスキーマを開発することです。

DTD に対するスキーマの明らかな利点は、DTD のような自己完結型の構文を使用するのではなく、XML スキーマ ドキュメント自体も XML ドキュメントであることです。これは、スキーマ専用の特別なツールを使用せずに、同じツールを使用して XML スキーマとその他の XML 情報を処理できるため、ユーザーと開発者にとって便利です。スキーマはシンプルで理解しやすく、XML の構文とルールを理解している人であればすぐに理解できます。スキーマの概念は古くから提案されてきましたが、W3C 標準が登場したばかりで、対応するアプリケーションのサポートはまだ完全ではありません。しかし、スキーマの採用は XML 開発のトレンドになっています。


まず、スキーマの文法構造を学ぶために最も簡単な例から始めましょう:

たとえば、単純な XML ドキュメントは次のとおりです。

<书本> 
<名称>天涯明月刀 
<作者>古龙 
  
ログイン後にコピー

XML ドキュメント構造が

<!ELEMENT 书本 (名称, 作者)> 
<!ELEMENT 名称 (#PCDATA)> 
<!ELEMENT 作者 (#PCDATA)>
那么用Schema形式如何定义呢?见下面的代码:
<element name=&#39;书本&#39; type=&#39;书本类型&#39;/> 
<complexType name=&#39;书本类型&#39;> 
<element name=&#39;名称&#39; type=&#39;string&#39;/> 
<element name=&#39;作者&#39; type=&#39;string&#39;/> 
</complexType>
ログイン後にコピー

注意すべき点の 1 つは、スキーマでは、ドキュメント全体の性質と内容の定義も、要素の定義と要素の関係の定義によって実現されるということです。同時に、スキーマでは、要素は名前とコンテンツ モデルによって決定されることに注意してください。名前は誰もが理解できる要素の名前であり、コンテンツ モデルは実際には要素のタイプを表します。 C++ と同様に、変数を自由に定義できますが、変数の型はさまざまな形式を持つことができます (C++ で内部的に指定される型、bool など)。 、 int 、 double 、 char など)、または非常に複雑な型 (構造体やクラスなど) である場合もあります。 1 つは非常に複雑な型 (型) です。シンプルタイプ (シンプルタイプ) シンプルには、コンプレックスと呼ばれる複雑なタイプがあります。単純型には要素と属性を含めることはできません (スキーマと DTD には同じ要素と属性が存在することに注意してください)。複合型には属性を含めることができるだけでなく、複合型内に他の要素をネストしたり、他の要素の属性に関連付けたりすることもできます。

上記は、簡単な XML スキーマのサンプル コードの詳細な説明です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


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