XML Schema: Use elementFormDefault to Hide/Expose Namespaces

Use elementFormDefault to Hide/Expose Namespaces

* ‘elementFormDefault’ is a binary switch attribute in the schema to control if the origin (i.e. namespace) of each element should be
– hidden (elementFormDefault=”unqualified”)
– or exposed (“elementFormDefault=”qualified”).
* elementFormDefault defaults to “unqualified”
* All schemas must have a consistent value for ‘elementFormDefault’ in order to hide/expose all elements.

Hide Namespaces

* Advantages:
– Simplicity
– Flexibility to change the schema without impact of instance documents.
* Howto:
– Set elementFormDefault=”unqualified” in all schemas.
– The element must not be globally declared.

Best Practices

* Make two identical copies of a schema:
– One with elementFormDefault=”qualified”
– One with elementFormDefault=”unqualified”
* Minimize the use of global elements and attributes.

Notes

* Global elements and attribute must always be qualified.
* Use <include> to include schema with same namespace.
* Use <import> to include schema with different namespace.

References

* Hide (Localize) Namespaces Versus Expose Namespaces or PDF version

This entry was posted in xml. Bookmark the permalink.