XML スキーマの簡単な例

黄舟
リリース: 2017-03-28 16:26:01
オリジナル
1654 人が閲覧しました

DTD の構文は非常に複雑で、XML ファイルの標準に準拠しておらず、独自のシステムを形成していることがわかります。つまり、DTD ドキュメント自体は、整形式の XML ドキュメントではありません。これは、多くの XML アプリケーションが必要に応じて、DTD ファイルを理解し、簡単な DTD ファイルを作成できるようにすることを目的としています。現在は DTD に基づいて構築されています。 DTD のもう 1 つの代替案は、W3C によって定義されたスキーマです
スキーマは、文字通りパターン、アウトライン、計画、計画などに変換できます。その基本的な意味は、XML ドキュメントのスキーマを開発することです。 DTD に対するスキーマの明らかな利点は、DTD のような自己完結型の構文を使用するのではなく、XML スキーマ ドキュメント自体も XML ドキュメントであることです。これは、スキーマ専用の特別なツールを使用せずに、同じツールを使用して XML スキーマとその他の XML 情報を処理できるため、ユーザーと開発者にとって便利です。スキーマはシンプルで理解しやすく、XML の構文とルールを理解している人であればすぐに理解できます。スキーマの概念は古くから提案されてきましたが、W3C 標準が登場したばかりで、対応するアプリケーションのサポートはまだ完全ではありません。しかし、スキーマの採用は XML 開発のトレンドになっています。

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

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

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

XML ドキュメント構造が DTD の形式で定義されている場合、それは次のようになります。次のように:

<!ELEMENT 书本 (名称, 作者)>
  <!ELEMENT 名称 (#PCDATA)>
  <!ELEMENT 作者 (#PCDATA)>
ログイン後にコピー

それでは、スキーマ形式で定義するにはどうすればよいでしょうか?以下のコードを参照してください:

  <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 など)、または非常に複雑な型 (構造体や クラス など) である場合もあります。 スキーマでも同様に型 (型) を 2 つに分けることができます。単純な型はシンプルと呼ばれ、複雑な型はコンプレックスと呼ばれます。単純型には要素と属性を含めることはできません (スキーマと DTD には同じ要素と属性が存在することに注意してください)。複合型には属性を含めることができるだけでなく、複合型内に他の要素をネストしたり、他の要素の属性に関連付けたりすることもできます。

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

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