AFAIK there's no wildcard support but there is support for swapping known namespaces when you read a document.

private static Map<String, String> NAMESPACE_UPDATES = new HashMap<String, String>();
//load the map somehow

        XmlOptions options = new XmlOptions();
        options.setLoadSubstituteNamespaces(NAMESPACE_UPDATES);
        XmlObject parsed = XmlObject.Factory.parse(element, options);

If you want to pursue wildcards I'd look for what happens to this map in the xmlbeans code. I think that its fed into the STAX layer: OpenEJB does something similar with something that just plugs into STAX.

hope this helps
david jencks


On Aug 31, 2007, at 12:57 PM, Oliver Newell wrote:


Hi - I'm working with a set of schemas that embed numbers of the form $major.$minor in the XML namespaces to convey version information. The numbering scheme extends to the imported namespaces - not just the target namespace of the schema, as shown below. By convention, minor numbers are used to indicate changes that are backwards compatible with previous versions - /additions/ to the schema. Major numbers are incremented when changes are made that break backwards compatibility.
<?xml version="1.0" encoding="UTF-8" ?>
<WMS_Capabilities xmlns="http://www.opengis.net/wms/1.3";
                 xmlns:gml="http://www.opengis.net/gml/3.1"; >
 <Service>
   <Name>Web Map Service</Name>
   <KeywordList>
     <Keyword>Topography</Keyword>
     <Keyword>Contour</Keyword>
   </KeywordList>

   etc.....

 </Service>
</WMS_Capabilities>

I am interested in having the capability for XMLBeans-based applications to happily consume instance documents that are produced using new minor versions of a schema. I also want to only generating new package names for new major versions of the schema. I see there is a facility in the XMLBeans configuration mechanism to specify the package names that are generated, so I can do the latter. I don't see a way to do the former - it seems like some kind of a wildcard mapping rule is needed so that an application based on version 1.3 of a schema will know how to unmarshall a version 1.4 instance document to the 1.3 data model. In other words, a configuration rule that stated something like:

http://www.opengis.net/wms/1.* --> mapsTo --> http:// www.opengis.net/wms/1

so that all versions with major number of 1 map to the same namespace as far as XMLbeans is concerned.

The usefulness of the wildcard capability wouldn't be limited to the particular $major.$minor numbering approach shown above. It should also be capable of supporting some of the W3C namespace versioning practices (which tend to embed a year in the namespace). This capability would allow for significantly increased system agility as schemas evolve. Right now, if I bump a minor version number in a schema namespace, I have to make sure ALL XMLBeans consumers are updated to use the new namespace, which isn't very practical for the distributed, 24/7 systems we are working on.

Is there an existing way to accomplish what I am describing in XMLBeans? If not, is there any developer interest, or can someone give me a hint as to how hard this would be to implement? (and where to start?)

Thanks!

-Oliver




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to