xml namespace
I've been working on Issue 1 submitted by Tsuresh Kumar for a while now. The idea is to compile the schema for SAML Metadata, which is saml-schema-metadata-2.0.xsd. I need to implement a few things so scalaxb can handle the schema.
The biggest issue is the handling of multiple schema documents. Real life schema like SAML Metadata defines the schema on top of existing schema documents/namespaces. The current implementation of scalaxb assumes that the given schema contains everything, and thus the namespace handling was sloppy. Now that it needs to handle multiple namespaces other than the targetNamespace and XSD namespace, I cleaned up the code to convert the prefixes into URI and keep them around in the ElemRef
and AttributeRef
object.
Here's an interesting trivia from Namespaces in XML 1.0:
The prefix xml is by definition bound to the namespace name http://www.w3.org/XML/1998/namespace. It MAY, but need not, be declared, and MUST NOT be bound to any other namespace name.
This means that xml:lang
automatically means {http://www.w3.org/XML/1998/namespace}:lang
.
A relatively minor issue was that it was not handling <any>
content model, which allows (almost) any elements to appear as children. For now, I am going to ignore them from the binding.