Nein, in XML darf höchstens ein Namespacepräfix vorhanden sein.
Die XML Namespace BNF Regeln für Namen basieren auf QName, die nur eine einzige PrefixedName
erlaubt:
QName ::= PrefixedName | UnprefixedName
PrefixedName ::= Prefix ':' LocalPart
UnprefixedName ::= LocalPart
Prefix ::= NCName
LocalPart ::= NCName
NCName ::= Name - (Char* ':' Char*) /* An XML Name, minus the ":" */
Weder Prefix
noch LocalPart
Kolon erlauben (:
) Zeichen, so kann es bei die meisten einen Doppelpunkt (und höchstens einen Prefix
) Teil zu einem QName
.
Side note: mehrere Doppelpunkte sind syntaktisch in der Basisebene XML erlaubt:
STag ::= '<' Name (S Attribute)* S? '>'
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
Name ::= NameStartChar (NameChar)*
Aber die W3C XML Recommendation is clear die Doppelpunkte sollte nicht außer für Namensräume Zwecke verwendet werden:
Hinweis:
Die Namespaces in der XML-Empfehlung [XML Names] weisen den Namen, die Doppelpunkte enthalten, eine Bedeutung zu. Daher sollten die Autoren den Doppelpunkt nicht in XML-Namen verwenden, mit Ausnahme von Namespace-Zwecken, , aber XML-Prozessoren müssen den Doppelpunkt als Namenszeichen akzeptieren.
Und Namespaces erlauben nicht mehrere Namespacepräfixe, wie oben gezeigt. auch
Siehe:
Heißt das '' ist gültig? –
Mehrere Doppelpunkte in einem Elementnamen wären technisch *** wohlgeformt *** (auf der Basis-XML-Ebene), aber nicht *** namespace-well-formed ***. (Validität ist ein Schema-Level-Konzept; siehe [Well-formed vs Valid XML] (http://StackOverflow.com/a/25830482/290085) für weitere Details, einschließlich mehr über Namespace-Well-Form. Sie haben gewonnen Ich werde wahrscheinlich einen XML-Parser finden, der *** namespace-well-formed *** Verletzungen ignoriert. Kurz gesagt: Mehrere Namespacepräfixe: Do not. – kjhughes