Ich habe ein Stück von XML, die ich unterschreiben bin versucht, dann überprüfen, welche relativ Namespaces verwendet:XML - Warum werden relative Namespaces als ungültig betrachtet?
<Organization>
<OrganizationName xmlns:_xml="xml" _xml:lang="en">name</OrganizationName>
<OrganizationDisplayName xmlns:_xml="xml" _xml:lang="en">name</OrganizationDisplayName>
<OrganizationURL xmlns:_xml="xml" _xml:lang="en">http://www.example.com/</OrganizationURL>
</Organization>
OpenSAML wirft die folgende Ausnahme:
org.apache.xml.security.c14n. CanonicalizationException: Element Organisationsname hat einen relativen Namensraum: _xml = "xml"
Warum sind relativ schlecht Namespaces in Betracht gezogen? Sicher könnte der Parser den Namespace nur auflösen, wenn er den wahren Wert analysiert?
EDIT: gefunden einige weitere Informationen
Die Namespaces in XML 1.1 Dokument heißt es unter Punkt 2.2:
Diese Geringschätzung der relativen URI-Verweise wurde von einem W3C XML Plenary Ballot [Relative URI deprecation] entschieden. Es erklärt auch, dass "spätere Spezifikationen wie DOM, XPath, etc. keine Interpretation für sie definieren".
Dies wurde für die Ballot on relative URI References gewählt.
Warum gibt es hier keinen absoluten Namespace-URI? – Tomalak
der crewjam/saml-projekt [marshalled] (https://github.com/crewjam/saml/blob/master/metadata.go#L107) es auf diese Weise – smokedice