2017-01-21 7 views
1

同じ名前空間プレフィックスを2回使用するXML文書を使用することは有効ですか?XML文書で同じ名前空間を再利用できるか

sという接頭辞は2回使用されますが、ネストされた要素ではURIが異なります。

有効ですか?

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark"> 
    <fx:Declarations> 
     <s:MyObject xmlns:s="library://ns.mysite.com"> 
      <s:Paragraph>hello world</s:Paragraph> 
     </s:MyObject> 
    </fx:Declarations> 
</s:Application> 

答えて

2

はい、プレフィックスはそれ自身で特別な意味を持ちません - 名前空間のエイリアスとしてのみです。それはあまりにも、各ノードのために変更することができます(デフォルト)の接頭辞を空にするために適用される

<a:r xmlns:a="urn:one"> 
    <a:p xmlns:a="urn:two"> 
     <a:c xmlns:a="urn:three"> 
     </a:c> 
    </a:p> 
</a:r> 

:すべてが同じ接頭辞を持っている場合でも、一意の名前空間を持つ各ノード名を持つ

完全に有効なXML。以下は、独自のnamespceさえなしで指定された各ノードで有効なXMLである必要があり、プレフィックス:XPathのセレクタ内のプレフィックスは、任意のXML文書内の接頭辞に関連していないとの接頭語の別々のマッピングを持っている必要があります

<r xmlns="urn:one"> 
    <p xmlns="urn:two"> 
     <c xmlns="urn:three"> 
     </c> 
    </p> 
</r> 

注意名前空間。また、XPathプレフィックスには一意のマッピングが必要です(標準はなく、マッピングは各Xml DOM実装に固有です)。

たとえば、このプレースの最初のXMLでは、 "/ a:r/a:p/a:c"のようなXMLに似たXPathを使用することはできません。 Xpathは接頭辞{p1-> urn:1、p2-> urn:2、p3-> urn:three}のマッピングを持つ "/ p1:r/p2:p/p3:c"のようになります。

関連する問題