Hello all

Continuing the work on the XML side of things (ISO 19139), there is two classes worth to note:

ObjectResolver [1]
---------------
ISO 19139 XML documents sometime contain an empty element with only a "xlink:href", "idref" ou "uuidref" attribute. The full object definition shall be fetched from the reference. When such attribute is found at unmarshalling time, the proposed mechanism is to invoke the corresponding "resolve" method from the ObjectResolver class. The user can provide its own ObjectResolver instance as a Marshaller property.

The "idref" attributes are local to the current XML document and can be partially handled by the standard @XmlID JAXB annotation. But "uuidref" is a UUID to a document that may be defined anywhere. It could be a primary key in a database internal to an agency. With the proposed ObjectResolver class, user can override the resolve(MarshalContext, UUID) method for returning the metadata object for the given UUID using whatever method is appropriate for his application. I'm hesitant about whether the default implementation should unconditionally returns null, or use a UUID list of objects previously created in the currently running JVM (using weak references).


ObjectConverters [2]
-----------------
By default, JAXB parses URL, URI, UUID etc. using the standard methods (e.g. new URI(String)). However in practice, we are often facing badly formatted metadata documents with invalid URL (a very common case is users putting a file path in Windows syntax instead of URL). ObjectConverters is a proposed hook for giving developers a chance to catch those situations and handle the errors as appropriate for their application. By default, the conversions are strict: invalid URL or URI or UUID cause the parsing to fail. But users can override the methods and, for example, replace some URL on-the-fly.

Comments are always welcome,

    Martin


[1] https://builds.apache.org/job/sis-jdk7/site/apidocs/org/apache/sis/xml/ObjectResolver.html [2] https://builds.apache.org/job/sis-jdk7/site/apidocs/org/apache/sis/xml/ObjectConverters.html

Reply via email to