ホームページ >バックエンド開発 >XML/RSS チュートリアル >XML のスキーマ コードの詳細な紹介 (図)

XML のスキーマ コードの詳細な紹介 (図)

黄舟
黄舟オリジナル
2017-03-10 19:19:221662ブラウズ

XML には、DTD よりも強力に要素構造を導入できるスキーマ機能があります。XML のスキーマの概念、機能、使用方法を詳しく説明します。必要な方は参照してください。

文書定義モデルは、XML 文書の標準化を提供します。 DTD の導入により XML ドキュメントの標準化の問題は解決されましたが、そのファイル形式の種類は XML ファイル形式の種類と一致しません。同時に、DTD が提供するデータ型は限られており、業界のニーズを満たすことができない場合があります。スキーマが導入されました。スキーマ モードでは、範囲、列挙、スタイル マッチングに従って、XML ドキュメントの要素と属性の構造、要素の順序、要素と属性のデータ値を決定できます。
XML のスキーマ コードの詳細な紹介 (図)

1. スキーマの紹介

XML スキーマ言語は、XML スキーマ定義 (XSD) とも呼ばれ、その機能は、XML 文書の正当なコンポーネント グループ (XML 文書の構造) を定義することです。 DTD にも同じ効果があります。 XML スキーマは XML 言語に基づいており、XML スキーマ自体は XML の応用であるとも言えます。

1. スキーマの役割

XML スキーマは DTD と同じ役割を持ちます。では、DTD がある場合、なぜ XML スキーマを使用する必要があるのでしょうか。 XML スキーマは DTD よりも強力であるためです。

DTD に対する XML スキーマの利点:
(1) スキーマは拡張可能
(2) スキーマは DTD よりも豊富で便利
(3) スキーマは XML で記述されます
(4) スキーマはデータ型をサポートします
(5)スキーマは名前空間をサポートします
(6) 他の言語を学ぶ必要はありません
(7) XML エディターを直接使用して XML スキーマを作成できます
(8) XML パーサーを直接使用して XML スキーマを解析できます
(9) XML DOMを使用してXML Schemaを柔軟に操作できます
(10) XSLT技術を使用してXML Schemaを変換できます

2 比較学習

1.1 機能的にはどちらも同じです

どちらもXMLの構造を定義しています文書の。

1.2 使用法に関しては、

はどちらも同じ機能を持ちますが、文法にはいくつかの違いがあります。スキーマは DTD の拡張機能であり、要素と属性の定義もサポートしています。ただし、スキーマでは、対応するデータ型を要素と属性に追加することもできます。さらに、要素と属性に応じて、データの内容には単純型と複合型が導入されます。
いわゆる単純型 (SimpleType) と複合型 (ComplexType) は、それ自体が特定のデータ型ではなく、ノードまたはカスタム型の抽象的な説明にすぎません。

言い換えれば、スキーマの導入により、パターンの宣言が私たちが使用するプログラミング言語により似たものになります。

2. 詳細な例の説明

2.1 スキーマの例

リスト 1: ユーザー。

リスト 2: スキーマ、ユーザーの両方を使用して定義します。とリスト3 ユーザーを定義します。具体的な違いについては、以下を参照してください。

  • 2.2 基本的な使い方

    上記では、機能と使用法に関してスキーマと DTD を比較分析しました。スキーマと DTD の最大の違いは、スキーマがデータ型と宣言などを導入していることです。 DTD と同様に、以下で説明する際には詳細には立ち入りません。

  • スキーマの基本コンテンツマップ:

2.2.1 参照構文

スキーマファイルの作成後、それを使用してXMLドキュメントの有効性を検証できます。つまり、XMLドキュメントが正しいかどうかを確認できます。 is スキーマファイルの定義に従います。 では、XML ドキュメントはどのようにしてスキーマ ドキュメントを参照するのでしょうか?

Schema モデルの参照は、上記の名前空間の適用方法に似ています。具体的な例は次のとおりです。 1) によると、内容の違いは単純要素と複合要素に分けられ、それぞれ simpleType と complexType でマークされます。

    単純な要素: 要素内のコンテンツはテキストのみであり、他の要素や属性は含まれません。
  • XML/HTML Code复制内容到剪贴板
    <?xml version="1.0"?>
    <用户列表>
        <用户>
             <用户名>xx</用户名>
             <密码>123456</密码>
             <用户类型>1</用户类型>
       </用户>
    </用户列表>


    複合要素: 他の要素と属性を含む要素。空の要素、他の要素のみを含む、テキストのみを含む、テキストと他の要素を含むの 4 つのタイプがあります。
  • りー


(2)按照定义位置可分为局部和全局元素。
全局元素:1dd643d91c792abd0a34d1b312e2f207元素的父元素必须是b7b165c079dc80a737996dfae2b9c338;
局部元素:局部元素声明只能出现在复杂类型(b04708ad431d182f917fc0425233bdde元素)定义内部。即1dd643d91c792abd0a34d1b312e2f207元素的父元素只能是6e9388779e5fc4a565f66fe84a63ec67、6352600d7af58d108c255b7cc4da5797或72b96a4fd26a14b531b12ddf122686e3元素。

XML/HTML Code复制内容到剪贴板
<?xml version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?>
<xs:schema xmlns:xs=&#39;http://www.nishishui.org/2000/XML Schema&#39; elementFormDefault=&#39;qualified&#39; attributeFormDefualt=&#39;unqualified&#39;>
    <xs:element name=&#39;用户&#39; type=&#39;user&#39;/><!-- 全局元素 -->
    <xs:element name=&#39;用户名&#39; type=&#39;xs:string&#39;/><!-- 全局元素 -->
    <xs:element name=&#39;密码&#39; type=&#39;xs:string&#39;><!-- 全局元素 -->
        <xs:complexType name=&#39;user&#39;>
            <!--sequence控制XML内容中元素出现的顺序-->
            <xs:sequence>
                <!-- 定义具体的元素,这些都是简单元素-->
                <!-- 定义局部元素,使用ref关键字引用,并使用minOccurs和maxOccurs制定元素出现的最少和最多的次数-->
                <xs:element ref=&#39;用户名&#39; minOccurs=&#39;0&#39; maxOccurs=&#39;1&#39;/><!-- 局部元素-->
                <xs:element ref=&#39;密码&#39; minOccurs=&#39;0&#39; maxOccurs=&#39;1&#39;/><!-- 局部元素-->
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>


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

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