コンピューター ウィンドウズ インターネット

XMLスキーマは、XMLドキュメントの構造の説明です。 XMLファイルのサンプル単純なXMLスキーマを作成する

時々理解する XMLファイル、地籍室に送られるのは、どこかで何かを修正する必要があると感じたときに必要なだけであり、多くの人の自然な好奇心が発達します。 しかし...重要です。 EDSファイルに署名した後は、XMLファイルを編集できないことに注意してください。 練習からの例として、300メモリのプロットを分割するとき、女の子はプロットの1つからアドレスの1行だけを誤って消去しました。 そしてそれはそれです..XMLファイルは検証に合格しませんでした。 すべてのレコードをプログラムで検索することは、特に何を探すべきかを知っていたので、私には退屈に思えました。 テストエディタでXLMファイルを検索して開いた後、必要な行を見つけて変更を加えました。 しかし、繰り返しますが、ファイルを編集した場合は、EDSで再度署名する必要があります。 それでは始めましょう。 図面を提示して説明します。

そしてもう一つの後退、 XMLファイルの編集と便利な表示用プログラムの使用をお勧めします。 これにより、ファイルの構造を確認し、値で色を付けることができます。 たとえば、私はバスルーム用の電気加熱タオルレールを使用しますが、もちろん彼の-)ではありませんが、地籍番号を持つストレージユニットの共有を共有することにより、2つのストレージユニットのXMLファイルを形成します… 。
例として、最初に、1つの折りたたまれたブロックを持つ折りたたまれたXMLファイルの画像を示します。

したがって、左側のラインカウンターから判断すると、336行のファイルがあります。 図からわかるように、ブロック 折りたたまれ、右側にプラス記号が表示されます。 したがって、最初にこの図からわかることを1行ずつ説明し、次にブロックに含まれるブロックを分析します。 それが最もボリュームがあるので。

ファイル全体を1行ずつ検討するのではなく、データが入力されている行のみを検討します。

3行 :CodeType = "014"-仕事の種類。私たちの場合のように、教育と "015"-説明の2つしかありません。 バージョン= "03"- XMLバージョンファイル。 GUID(グローバル一意識別子)は統計的に一意の128ビット識別子です。この場合、ファイル名はこのインジケーターと一致する必要があります。
4行 :地籍技術者が勤務する組織のデータ、または地籍技術者自身のデータ。
5行 :受取人の組織コード、この場合は管理 連邦サービスタタールスタン共和国における州の登録、地籍および地図作成。

次に、提示された図に基づいて、すぐにファイルの最後に移動し、ブロックについて考えてみましょう。 ..。 このブロックには、 地籍エンジニア誰がその仕事をしたのか。 次は、座標系が適合するブロックです。 ところで &quotテキストファイルの値では、引用符を示します。

原則として、メモ帳++でファイルを開くと、XMLファイルの構造全体が明確になります。 -場所-住所が含まれます。 の値 KLADRへのアドレスの一部がない場合に書き込まれます。

で生成されたプランマップXMLファイルの例 ソフトウェア製品ポリゴンマッププラン

このフラグメントを最も視覚的に表示するには、フラグメントをコピーして、セクションからダウンロードできるテストエディターのメモ帳++で表示します。

手段をとると、人々は自分自身や他の人に幻滅し、そのためにすべての活動から何も出てこないか、または彼らが目指していたものの反対になります。I.ゲーテ

XML形式は、一部のプログラム、サイトの作業、および特定のマークアップ言語のサポートに役立つデータを格納するように設計されています。 この形式でファイルを作成して開くことは難しくありません。 これは、コンピューターに専用のソフトウェアがインストールされていない場合でも実行できます。

XML自体は、Webページで使用されるHTMLにいくぶん似たマークアップ言語です。 ただし、後者が情報とその正しいマークアップの表示にのみ使用される場合、XMLを使用すると、特定の方法で構造化できます。これにより、この言語は、DBMSを必要としないデータベースのアナログのようなものになります。

専用プログラムと組み込みの両方を使用してXMLファイルを作成できます Windowsテキスト編集者。 コードを書くことの便利さとその機能のレベルは、使用するソフトウェアのタイプによって異なります。

方法1:Visual Studio

このMicrosoftコードエディターの代わりに、他の開発者からの対応するものを使用できます。 実際、VisualStudioは通常のより高度なバージョンです 「メモ帳」..。 コードに特別な強調表示が追加され、エラーが自動的に強調表示または修正され、特別なテンプレートがプログラムに既に読み込まれているため、大きなXMLファイルの作成を簡素化できます。

開始するには、ファイルを作成する必要があります。 アイテムをクリックします "ファイル"トップバーとドロップダウンメニューから選択します "作成…"..。 アイテムが示されている場所にリストが開きます "ファイル".

  • それぞれファイル拡張子を選択してウィンドウに移動し、項目を選択します 「XMLファイル」.
  • 新しく作成されたファイルには、エンコードとバージョンが記載された最初の行がすでに含まれています。 デフォルトは最初のバージョンとエンコーディングです UTF-8いつでも変更できます。 次に、本格的なXMLファイルを作成するには、前の手順にあったすべてのものを登録する必要があります。

    終了したら、トップバーからもう一度選択します "ファイル"、およびドロップダウンメニュー項目から "すべて保存".

    方法2:Microsoft Excel

    たとえば、最新バージョンのMicrosoft Excelを使用すると、コードを記述せずにXMLファイルを作成できます。これにより、この拡張子でテーブルを保存できます。 ただし、この場合、通常のテーブルよりも機能的なものを作成できないことを理解する必要があります。

    この方法は、コードの操作方法を望まない、または知らない人に適しています。 ただし、この場合、ユーザーはファイルをXML形式に書き換えるときに特定の問題が発生する可能性があります。 残念ながら、通常のテーブルをXMLに変換する操作は、最新バージョンのMSExcelでのみ可能です。 これを行うには、次のステップバイステップの手順を使用します。


    方法3:メモ帳

    XMLでの作業には、通常のものでも問題ありません。 "ノート"ただし、言語の構文に慣れていないユーザーは、さまざまなコマンドやタグを記述する必要があるため、苦労することになります。 このプロセスは、Microsoft Visual Studioなどの特殊なコード編集プログラムでは、いくらか単純で生産性が高くなります。 特別なタグの強調表示とツールチップがあり、この言語の構文に不慣れな人の作業を大幅に簡素化します。

    この方法では、何もダウンロードする必要はありません。 オペレーティング・システムすでに組み込まれています "ノート"..。 与えられた指示に従って、その中に単純なXMLテーブルを作成してみましょう。


    完成した結果は次のようになります。




    25
    NS


    XMLコンパイラーは、特定のIvanIvanovに関するデータを含む1つの列を持つテーブルの形式でこのコードを処理する必要があります。

    V 「メモ帳」このような単純なテーブルを作成することはかなり可能ですが、より大量のデータ配列を作成する場合、通常のように問題が発生する可能性があります。 「メモ帳」コード内のエラーを修正したり、それらを強調表示したりするための関数はありません。

    ご覧のとおり、XMLファイルの作成に問題はありません。 必要に応じて、コンピューターでの作業方法を多かれ少なかれ知っているユーザーなら誰でも作成できます。 ただし、本格的なXMLファイルを作成するには、少なくともプリミティブレベルでこのマークアップ言語を学習することをお勧めします。

    この章では、XMLスキーマの記述方法を説明します。 また、図はさまざまな方法で記述できることも学びます。

    XMLドキュメント

    「shiporder.xml」と呼ばれる次のXMLドキュメントを見てみましょう。

    ジョンスミス オラ・ノールマン

    Langgt 23
    4000スタヴァンゲル ノルウェー エンパイアバーレスク 特別版 1 10.90 あなたの心を隠す 1 9.90

    上記のXMLドキュメントはルート要素で構成されています 出荷注文必要な属性を持つ orderid ..。 エレメント 出荷注文 3人の子供が含まれています: 注文者, 送り先アイテム..。 エレメント アイテム 2回使用され、要素が含まれています 題名、オプションの要素 ノートだけでなく、要素 価格.

    ライン xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" このドキュメントをスキーマに対して検証する必要があることをXMLパーサーに通知します。 ライン xsi:noNamespaceSchemaLocation = "shiporder.xsd" スキーマの場所を指定します(この場合、スキーマは「shiporder.xml」ファイルと同じフォルダーにあります)。

    XMLスキーマの作成

    次に、上記のXMLドキュメントのXMLスキーマを作成しましょう。

    作成しましょう 新しいファイルこれを「shiporder.xsd」と呼びます。 XMLスキーマを作成するには、XMLドキュメントの構造に従い、検出する各要素を定義するだけです。 標準のXML宣言とそれに続く要素から始めましょう xs:スキーマ 、スキーム自体を定義します。

    ...

    ここでは、標準の名前空間を使用しています( xs )およびその名前空間に関連付けられたURI。デフォルト値があります。 http://www.w3.org/2001/XMLSchema .

    次に、要素を定義する必要があります 出荷注文..。 この要素には属性があり、他の要素が含まれているため、複合型要素として扱います。 要素の子の定義 出荷注文宣言を入れて xs:シーケンス 、サブ要素の厳密なシーケンスを定義します。

    ...

    それでは、要素を定義しましょう 注文者これは単純なタイプになります(属性やその他の要素が含まれていないため)。 そのタイプ( xs:文字列 )には、XMLスキーマに関連付けられた名前空間が接頭辞として付けられます。これは、事前定義されたデータ型の使用を示します。

    次に、以下を定義する必要があります。 送り先アイテム..。 要素を定義することから始めましょう 送り先:

    ダイアグラムの助けを借りて、任意の要素を定義できます。 属性はこれに役立ちます。 maxOccurs minOccurs ..。 属性 maxOccurs 要素の最大出現回数と属性を指定します minOccurs 発生の最小数を指定します。 デフォルトでは、両方の属性の値は1です。

    それでは、要素を定義しましょう アイテム..。 この要素は、要素内で無制限に使用できます。 出荷注文..。 要素のそのような特徴を決定する アイテム属性への割り当てを許可します maxOccurs 意味 「無制限」 ..。 これは、要素が アイテムドキュメントの作成者は、必要に応じて何度でも使用できます。 要素に注意してください ノートオプション。 属性を設定することでこれを定義します minOccurs ゼロにする:

    これで、要素の属性を宣言できます 出荷注文..。 これは必須の属性であるため、定義を使用します use = "必須" .

    注:属性は常に最後に宣言する必要があります。

    「shiporder.xsd」スキーマファイルの完全なコードは次のとおりです。

    スキーマの分割

    スキーマの以前のレイアウト方法は非常に単純ですが、ドキュメントがかなり複雑な場合、この方法は対応するスキーマを非常に煩雑にする可能性があり、その可読性と保守性に大きく影響します。

    スキーマをレイアウトする次の方法は、最初にすべての要素と属性を定義し、次に属性を使用してこれらの定義を参照することです。 ref .

    以下は、スキーマファイル( "shiporder.xsd")の新しいレイアウトです。

    名前付きタイプの使用

    スキーマをレイアウトする3番目の方法は、メンバー定義の再利用を可能にするクラスまたはタイプを定義することです。 これは、要素に名前を付けることで可能になります simpleTypes complexTypes 次に、属性を使用してそれらをポイントします タイプ .

    スキーマファイル( "shiporder.xsd")をリンクする3番目の方法:

    エレメント 制限データ型がW3CXMLスキーマ名前空間のデータ型から派生していることを示します。 したがって、次のコードは、要素または属性の値が文字列でなければならないことを意味します。

    しかし、はるかに多くの場合、要素 制限要素に制約を課すために使用されます。 上の図から次の行を見てください。

    このコードスニペットは、要素または属性の値が文字列であり、長さが正確に6文字である必要があり、それらの文字が0から9までの数字である必要があることを指定します。

    以下のすべての例では、XSL言語標準が使用されています。 この標準のより現代的な修正であるXSL言語も広く使用されています。 NS、\ xml \ XSLTutorialまたはMSDNで読むことができる詳細。

    簡単なサンプルXMLファイル(ex01.xml)を見てみましょう。 この例と他の例は、ディスク上の\ xml \ XSLTForBeginersフォルダーにあります。



    XSLノート

    このファイルをで開くと インターネットブラウザエクスプローラー、すべてのタグとサービス情報とともに、上記と同じテキストが表示されます。 ただし、タグやサービス情報は必要ありません。 ケースに関連する情報のみを表示し、タグを使用して管理します 外観この情報。 このタスクは簡単かつ簡単に解決できます。XMLファイルに変換テンプレート(XSLファイル)を追加する必要があります。

    XMLファイルを次のように書き直してみましょう(ex01-1.xml)。




    XSLノート

    そして、XSLファイルex01-1.xslを作成します。 ファイルのテキストを以下に示します。






    ここで、ブラウザでex01-1.xslファイルを開くと インターネットエクスプローラ、次に、タスクが解決されたことがわかります。必要な情報のみが画面に残り、すべてのタグが消えています。 ブラウザ画面に表示される結果を以下に示します。

    XSLノート

    また、行が出力される順序は、変換テンプレートのコンテンツ(XSLファイル)によってのみ決定されることも簡単にわかります。 必要に応じて、メインのXMLファイルをまったく変更せずにテンプレートを簡単に変更できます。

    XMLファイルを書き直してみましょう。 情報部分は変更しませんが、別のテンプレートex01-2.xmlを指定します。




    XSLノート

    XSLファイルex01-2.xslを作成しましょう。 ファイルのテキストを以下に示します。






    ここで、Internet Explorerでex01-2.xslファイルを開くと、結果は異なります。

    XSLノート

    ここで、データベース開発者にとって重要な瞬間を指摘しましょう。 XMLページの情報は通常、データベースクエリの結果として表示されます。 マルチユーザー環境でデータベースをクエリすると、非常にコストがかかります。 XMLがなく、標準の静的HTMLページを生成しているとします。 この場合、情報の外部表現の単純な変換の問題を解決するために、たとえば、並べ替えを変更するために、問題を解決する2つの方法があります。クエリを実行し、結果をサーバー上の一時バッファーに保存します。または、外部表現が変更されるたびに、新しいクエリを実行してHTMLページを再生成します。

    最初の方法は時間のかかるプログラミングを必要とし、2番目の方法はデータベースサーバーの負荷を大幅に増加させます。そのパフォーマンスはシステムのボトルネックになることがよくあります。ユーザーは常に結果をより速く取得したいと考えています。

    XMLとXSLは、上記の問題に対する包括的なソリューションです。 実際、XMLページはクエリ結果の一時バッファです。 非標準で時間のかかるプログラミングの代わりに、標準のXSLメカニズムを使用するようになりました。

    データベース開発者にとって重要な考慮事項がもう1つあります。 最新のDBMSのほとんどは、データベースクエリの結果をXMLファイルとしてフォーマットできます。 つまり、XMLおよびXSLテクノロジのフレームワークでユーザーインターフェイスを構築する場合、DBMSベンダーからの一定の独立性を実現します。 撤退の組織に関して-ほぼ完全な独立。 そして、この部分は、ほとんどのデータベース指向のアプリケーションでは非常に大きくなります。 もちろん、出力に加えて、ビジネスロジックの入力とサーバー処理もありますが、ここでは他のいくつかのソリューションを探す必要があります。

    最初のステップ

    ここで、最初の例をさらに詳しく調べてみましょう。 そのテキストを思い出してみましょう。



    XSLノート

    最初の行は、ファイルがXML形式であることをブラウザに通知します。 version属性は必須です。 encoding属性はオプションですが、テキストにロシア語の文字が含まれている場合は、この属性を挿入する必要があります。そうしないと、XMLファイルが処理されません。エラーメッセージが表示されます。

    次の行は、XMLファイルの本文です。 これは、一緒にツリー構造を形成する要素で構成されています。 要素はタグで識別され、相互にネストできます。

    要素は、テンプレートに従って値を処理することもできる属性を持つことができます。

    XMLファイルの最上位には常に1つの要素があります。 つまり、次の形式のファイル



    XSLノート



    「CSP入門」

    ブラウザでは処理されません。 有効なXMLファイルに変換するには、要素タグを追加する必要があります トップレベル、 例えば




    XSLノート



    「CSP入門」


    タグ名では大文字と小文字が区別されることに注意してください。 これについては、XML要素と属性に関する本で詳しく読むことができます。これらの本は多くの注意を払っています。

    変換テンプレートであるXSLファイルに移りましょう。 XSLファイルのタスクは、XMLファイルのツリーを別のツリーに変換することです。このツリーは、たとえばHTML形式に対応し、形式やフォントの選択などを考慮して、ブラウザー画面に表示できます。

    ブラウザが必要な変換を実行するには、XMLファイルでXSLファイルへのリンクを指定する必要があります


    それでは、XSLファイルのテキストを見てみましょう。






    ファイルの最初の行には、xsl:stylesheet要素タグが含まれています。 要素の属性は、バージョン番号と名前空間の参照です。 xsl:stylesheet要素のこれらの属性は必須です。 この場合、名前空間は、XSLファイルで使用できる要素とその属性のすべての名前です。 XSLファイルの場合、名前空間参照が標準です。

    XSLファイルはXMLファイルの一種であることに注意してください。 ユーザーデータは含まれていませんが、形式は同じです。 このファイルには、最上位の要素xsl:stylesheetと、それに続く変換ルールのツリーが含まれています。

    このドキュメントでは、XSLファイルの各要素の意味については詳しく説明しません。 さまざまな例を示し、各例で結果を示します。これにより、XSLファイルのさまざまな要素と、元のXMLファイルの変換をこれらの要素によって開始されたユーザー情報に個別に関連付けることができます。 また、属性の値にも注意してください 選択する「選ぶ」という意味の類似したものは特別な言語で書かれています XPath、これについては、disk \ xml \ XPathTutorialで簡単に読むことができ、MSDNでより詳細に読むことができます。

    以下では、XMLファイルとXSLファイルのテキストを白黒で示します。 いつでも実際のファイルを開いて、すべてをカラーで見ることができます。 必要に応じて、XSLファイルへのリンクをコメントアウトします。 コメント構文は次のとおりです-..。 コメントテキストに記号を挿入することはできません。

    最初の例では、xsl:value-of要素を使用して要素のコンテンツ(タグで囲まれたテキスト)をHTML形式で表示する方法を確認しました。 次に、同じ要素を使用して要素の属性の値を表示する方法を説明します。

    次のXMLファイルex02-1.xmlについて考えてみます。

    XMLに関する前回の記事では、XMLドキュメントを検証するこのような時代遅れの方法であるXMLDTDについて説明しました。 この方法 XMLデータの検証には引き続き使用されますが、日ごとにますます置き換えられています 新技術 XMLスキーマと呼ばれます。 XMLスキーマの多くの欠点が修正されました。これはXMLDTDなどにありました。 この瞬間すべての主要な開発者は、ドキュメントの検証にXMLスキーマのみを使用します。

    DTDに対するXMLスキーマの利点を理解するために、XMLスキーマで正常に修正された主なDTDの弱点を詳しく見てみましょう。 記事「」ですでに言及しましたが、理解を深めるために繰り返しましょう。

    XMLスキーマに対するXMLDTDのデメリット

    1. XML以外の言語構文。 つまり、DTDはXMLではありません。 これにより、XMLドキュメントのエンコードと検証でさまざまな問題が発生する可能性があります。
    2. データ型のチェックはありません。 XML DTDには、文字列という1つのデータ型しかありません。 この点で、たとえば、数値フィールドにテキストがある場合、XML DTDはデータ型をチェックできないため、ドキュメントは引き続き検証されます。
    3. 複数のDescriptionDTDを単一のXMLドキュメントにマップすることはできません。 つまり、ドキュメントは1つのDTD記述のみで検証できます。 それらが複数ある場合は、説明をやり直してすべてを1つのファイルにまとめる必要があり、これは非常に不便です。

    これらは、XML DTDの主な欠点であり、XMLドキュメントを記述するための業界標準であるXMLスキーマで正常に修正されました。

    XMLスキーマ-XMLドキュメントを記述するための業界標準

    つまり、XMLスキーマは次のことを行います。

    1. 要素と属性の名前を説明します(辞書)。
    2. 要素と属性の関係、およびそれらの構造(コンテンツモデル)について説明します。
    3. データ型について説明します。

    また、現時点では、図を使用して、ほとんどすべてを説明できることにも注意してください。 つまり、スキーマは、XMLドキュメントの検証だけでなく、データベースの記述などにも使用できるデータ文法を記述するための普遍的な方法です。 したがって、スキームの適用範囲は現時点では非常に広いです。

    XMLドキュメント検証のためのXMLスキーマの例

    実践が示すように、すぐに例を使って勉強を始めると、資料ははるかによく吸収されます。 特にテキスト形式で研究する場合、資料は非常に複雑であるため、すべての微妙な点を掘り下げることはしないとすぐに言わなければなりません。

    単純なXMLスキーマの例

    このスキーマを使用して、次のコンテンツを含むXMLドキュメントを検証できます。

    <книга xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "book.xsd"> <название>XMLの基本 <цена>300

    では、XMLスキーマに戻りましょう。 すでにお気づきのように、XMLスキーマの作成にはすでに既知のXMLが使用されています。 ここでの唯一の違いは、通常のXMLとは異なり、XMLスキーマにはすでに要素が定義されていることです。 このため、名前空間が使用されます。 この場合、必要な名前空間は「http://www.w3.org/2001/XMLSchema」であり、接頭辞として「xs」が付けられます。

    両方の名前空間プレフィックスを使用して、ルート要素の名前空間を設定できることにすぐに注意したいと思います。 そのため、ここでは違いはありません。 与えられた状況でどのように行動するかは、誰もが自分で決めます。 通常、接頭辞「xs」または「xsd」が使用されます。

    さて、それでは、上記のスキームを解読する方法を考えてみましょう。 上記のように、XMLスキーマは辞書とデータ型の記述です。 これに基づいて、各要素を解読します。

    • -要素「book」をタイプ「Book」で宣言します。
    • -「Book」という名前の複合型を宣言します(xs:complexType-ネストされた要素が含まれる場合があります)。
    • -ネスト宣言。 つまり、型にはネストされた要素が含まれます。
    • -「name」という名前の要素を宣言します(標準タイプは「string」です-xs:string)。
    • -「price」という名前の要素を宣言します(標準タイプ「number」の-xs:decimal)。

    ご覧のとおり、ここにはそれほど複雑なものはありません。 あなたがそれについて考えるならば、すべては非常に単純です。

    基本的なXMLスキーマ要素

    つまり、XMLスキーマは次のように記述できます。

    あなたの回路

    例からわかるように、各XMLスキーマは、ルート要素「schema」と必要な名前空間「http://www.w3.org/2001/XMLSchema」で構成されています。 以下は、回路と回路自体の説明です。 同時に、非常に高品質のスキーマでは、説明がXMLスキーマ自体よりもはるかに大きいことがよくあります。

    XMLスキーマの要素の説明

    記事の冒頭で、最も単純なXMLスキーマの例をすでに見てきました。 その中で、要素とタイプを別々に説明しました。 同時に、ここではシーケンスが役割を果たさないことにすぐに注意したいと思います。 回路はとにかく動作します。

    次に、要素のすぐ内側に型を記述することに基づいたXMLスキーマを作成する2番目の方法を見てみましょう。 NS メソッドが適合します異なる要素に同じ説明を使用する予定がない場合。 わかりやすくするために、例を考えてみましょう。

    例からわかるように、要素は、適切なプレフィックスを使用した特別な構造「element」を使用して宣言されます。 この場合、タイプ(タイプ)を指定せずに「root」という名前の要素を定義します。これは、要素内で説明されるためです。 つまり、アイテムを説明する方法は2つあります。

    片道

    タイプ説明

    2ウェイ

    アイテムタイプの説明

    最初の方法と2番目の方法の両方を使用できます。 それらはすべて同じように機能します。 唯一の問題は、この特定の場合の利便性です。

    さらに、要素を宣言した後、それが複合型であることを示します( )および列挙( )ネストされた要素。 この場合、これらは「xs:string」および「xs:integer」タイプの要素nameおよびageです。 xsプレフィックスは、これがXMLスキーマ標準ですでに説明されている基本タイプであることを意味します。

    ご覧のとおり、これまでのところすべてが非常に単純です。 繰り返しになりますが、この記事はXMLスキーマに精通することを目的としており、詳細に学習することを目的としていないため、すべての詳細については説明しません。

    XMLスキーマとドキュメントマッピングの方法

    XMLスキーマの特徴は、ドキュメント自体ではなく名前空間を記述していることです。 この点で、ほとんどの場合、文書には彼女についての言及がありません。 ハンドラー自体は、XMLドキュメントの指示を使用せずに、必要なスキーマをマップします。

    ハンドラーがスキーマの場所を知らない場合は、スキーマを探す場所を指定できます。 これは、特別な「schemaLocation」属性を使用して行われます。 この属性は別の名前空間に属しているため、属性を使用する前にスペースも指定する必要があります。 わかりやすくするために、例を考えてみましょう。

    XMLスキーマ

    XMLドキュメント

    それでは、各行を詳しく見ていきましょう。

    • targetNamespace = "http://www.site.com"-このXMLスキーマの名前空間を示します。
    • xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"-"schemaLocation"属性が記述されている名前空間を接続します。
    • xsi:schemaLocation = "http://www.site.com/product.xsd"-パーサーがスキーマの場所を知らない場合に備えて、スキーマの場所を示します。 XMLドキュメントがどの名前空間にも属していないため、スキーマにそのXMLドキュメントへの参照がない場合、「schemaLocation」属性は「noNamespaceSchemaLocation」(名前空間を定義しないスキーマへの参照)に置き換えられます。

    それで全部です。 XMLの学習に頑張って成功してください!