Hello again,
To update the work from last month, this morning I published an
equivalent suite of Python/SAX programs to implement instance pruning.
I also updated the documentation with an illustration of how I am
teaching my UBL students how minor version forward-compatible
transformation pruning, which also happens to be identical to
customization transformation pruning, of incoming UBL instances would work.
It turns out the interpretive nature of Python and the library
implementation of SAX turns out to be very much slower than the
inherent XML-based XSLT processing implemented by Saxon: the
building and processing of the source node tree in XSLT is faster
than the stream processing implemented in Python/SAX.
I hope this is of some interest. Feedback welcome.
. . . . . . . . . . . . . . Ken
At 2007-09-23 17:11 +0200, I wrote:
>Hello all,
>
>I've just published a library of XSLT 1.0 stylesheets used to
>implement forward compatibility in systems supporting UBL 2.0.
>
>These can be found through Crane's home page, and from the right
>margin select "Free resources", then the first section for "UBL, UN
>Layout Key, XPath and Code List Resources" link, then the section
>"Stylesheet/filter resources" where you will find "Crane's UBL 2
>instance filters" (I am not posting the link in the archive in case
>the URL has to change, the above instructions should be consistent
>regardless of the file locations).
>
>This is a collection of XSLT filters used to create a pure UBL
>instance by copying all elements defined by a UBL 2 specification
>and ignoring those not defined by the specification. Also available
>are stylesheets for each document type. As minor revisions of UBL
>are published by the UBL Technical Committee, Crane's library of
>filters will be updated to support each one.
>
>Such filtering is important to a UBL deployment that needs to be
>forward compatible in a heterogeneous network where instances of
>different minor revisions are being used. The validation of a
>filtered instance reflects any constraint violations to the minor
>version supported, not to any subsequent minor versions that are
>guaranteed to violate the earlier minor version constraints. Thus,
>an application will not be prevented from inspecting the filtered
>instance to determine the original minor version level and know that
>some indeterminate information items have been removed by filtering.
>
>I'm planning to create a Python/SAX-based implementation of these
>filters that should run faster than XSLT because of there not being
>any need to build a source node tree.
>
>I'm planning to add documentation as we get deployment experience,
>but for now I want to get these out in order to talk about them at
>tomorrow's UBL face-to-face in Stockholm.
>
>Please forward any questions or comments off list.
>
>I hope people find this interesting ... I'm looking forward to feedback.
>
>. . . . . . . . . . . . . Ken
>
>cc: UBL TC, UBL Dev
--
Comprehensive in-depth XSLT2/XSL-FO1.1 classes: Austin TX,Jan-2008
World-wide corporate, govt. & user group XML, XSL and UBL training
RSS feeds: publicly-available developer resources and training
G. Ken Holman mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/o/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
Male Cancer Awareness Jul'07 http://www.CraneSoftwrights.com/o/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal