Namespaces
There are two aspects to namespace support:
First, the generated marshaler and unmarshaler read and write namespace-qualified XML according to the schema definitions.
Second, HydraExpress uses namespaces to generate classes in a scope that is unique to the defined namespace.
For the former, HydraExpress passes
rwsf::XmlName instances to the reader and writer for all fully qualified names. The header file for a complex type contains static constant
rwsf::XmlName instances for the name of the
complexType as well as any child elements and attributes that it defines. If the
targetNamspace attribute on the XML Schema is present, this is the URI used for any
namespace qualified structures:
Types are always namespace qualified.
Top-level elements (i.e., elements that occur directly under the schema declaration) are always namespace qualified.
Other elements are namespace qualified if either:
The element declaration in the schema defines the
form attribute as
qualified.
The element declaration does not define the
form attribute, and the schema declaration defines the
elementFormDefault attribute as
qualified.
Attributes are namespace qualified if either:
The attribute declaration in the schema defines the
form attribute as
qualified.
The attribute declaration does not define the
form attribute, and the schema declaration defines the
attributeFormDefault attribute as
qualified.
Otherwise, elements and attributes are not to be namespace qualified, and only the local name is used.