28

「空」はXML名前空間の有効な値ですか?はいの場合、それはどういう意味ですか?

次のXMLコードがありますが、どの名前空間Field1Field2要素が属しているのかわかりません。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header />
  <soap:Body>
    <Root xmlns="uri">
      <Field1 xmlns="">147079737</Field1>
      <Field2 xmlns="">POL</Field2>
    </Root>
  </soap:Body>
</soapenv:Envelope>
4

2 に答える 2

27

はい、有効です。XML 1.0勧告の名前空間のセクション6.2は、具体的に次のように述べています。

デフォルトの名前空間宣言の属性値は空である可能性があります。これは、宣言の範囲内で、デフォルトの名前空間がないのと同じ効果があります。

コメントから引用:

これは合法であり、これが要素をグローバル名前空間に取り込む方法です。

于 2009-10-19T10:17:02.160 に答える
5

有効なXMLNSではありません。有効なXMLNS宣言ではありません。XML1.0の名前空間のセクション2.2を確認してください。

空の文字列は有効なURI参照ですが、名前空間名として使用することはできません。

ただし、デフォルトのNS宣言が有効になっている場合、または無効になっている場合は、これがデフォルトのNS宣言を宣言解除する唯一の方法です。XML1.0および1.1のセクション6.2の名前空間を参照してください。1.1 NS recは、プレフィックス付きのNS宣言を宣言解除する方法も追加しました。

したがって、これはxmlns特別な属性の有効な値ですが、OPが記述したような「有効なXML名前空間」ではありません。

于 2014-10-30T19:48:57.803 に答える