2017-01-21 2 views
1

Ist es zulässig, ein XML-Dokument zu verwenden, das zweimal dasselbe Namespacepräfix verwendet?Können Sie denselben Namespace in einem XML-Dokument wiederverwenden?

Im folgenden Dokument wird das Präfix s zweimal verwendet, aber im verschachtelten Element ist URI anders.

Ist es gültig?

<?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> 

Antwort

2

Ja, Präfix hat selbst keine besondere Bedeutung - nur als Alias ​​für Namespace.

Perfekt gültige XML mit jedem Knoten eines eindeutigen Namen Namensraum selbst wenn alle der gleichen Präfix:

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

Es gilt auch für (Standard) Präfix leer, die auch für jeden Knoten geändert werden können. Es gilt XML mit jedem Knoten mit einem eigenen namespce auch keine Namen haben Präfix:

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

Beachten Sie, dass Präfixe in XPath-Selektoren nicht in zu Präfixen in einem bestimmten XML-Dokument beziehen und müssen getrennte Abbildung von Präfix müssen Namensraum. Auch in XPath-Präfixen müssen eindeutige Zuordnungen vorhanden sein (es gibt keinen Standard dafür und die Zuordnung ist für jede Xml-DOM-Implementierung spezifisch).

Zum Beispiel für die erste XML in diesem Beitrag können Sie nicht XPath haben, ähnlich wie XML aussehen "/ a: r/a: p/a: c" als jedes Präfix muss zu anderen Namespace zuordnen. Xpath würde aussehen wie "/ p1: r/p2: p/p3: c" mit Zuordnung von Präfixe {p1-> urn: eins, p2-> urn: zwei, p3-> urn: drei}.

Verwandte Themen