1

私が研究しているXMLファイルの上部に、最初に次のように表示されます。

<selfModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:noNamespaceSchemaLocation="../../dtd/selfmodel.xsd">

その後、それはXMLの実際の要点です。

  <plan id = "offer" default="true">
     <description>Automatically generated from ACELandic specification</description>
        <states> .. etc

xmlns:xsi=とものの目的は何xsi:noNamespaceSchemaLocationですか?ファイルがコンパイルされるときにオンラインで検索/検証されますか?それは私がURLwww.w3.org/2001/XMLSchema-instanceで想定していることですが、それは非常に非効率的であるように思われます

4

1 に答える 1

1

それはヘッダーではありません。これは、ドキュメントのルートノードにすぎません。

その要素に表示される「xmlns:xsi」属性は名前空間宣言です。名前空間は、使用する前に宣言する必要があります。そのため、多くの場合、ドキュメントの先頭で宣言されています。それらが使用される前にそれらを宣言することだけが必要です。

名前空間名(名前空間属性の値)は多くの場合URLの形式ですが、必ずしもインターネット上のリソースの場所であるとは限りません。それらは単に一意の名前です。特に、これらは常にURIの形式になります。これは、「URL」のスーパーセットである構文ですが、インターネット上のリソースの場所としてではなく、一意の識別子としてのみ使用できます。

「xsi:schemaLocation」および「xsi:noNamespaceSchemaLocation」の値として指定されたURI、ドキュメントの検証に使用できるスキーマの場所です。それらは必要ではありませんが、持っていてよかったです。すべてのXMLパーサーがそれらに注意を払うわけではありません。特に、XML検証を行っていない場合や、検証中にインターネットを使用したくない場合があります。

于 2013-01-18T17:39:15.603 に答える