At 2006-09-06 10:51 +1000, hedley.finger@...
>For anybody designing XSLT or XSL:FO, a utility that took a given XML
>Schema or DTD and parsed it to generate an instance document that
>contained every possible leaf and inserted sample content in content
>elements such as <p> [paragraph] would be very useful. You could use it
>to generate an instance of the source and destination document for both
>developing transform rules and testing the resulting XSL/XSLT/XSL:FO
>Does anybody know of such an utility?
This is not nearly as straightforward as it sounds.
>As a non-programmer, I don't have
>the knowledge or skill to develop a tree-walker which could output
It isn't a tree walker that you need, it is a schema walker.
Because the Universal Business Language document
schemas are regularly formed based on
programmatic generation from strict naming and
design rules, I was able to write a rudimentary
schema walker in Python (not released) to produce
an enumeration of the XPath address for all
possible information items. I then produced an
XML instance with one of everything and I
populated each information item with the ordinal
of the XPath address for that item. This
provides a kind of audit trail when using the
"one of everything" instance as the input to formatting.
So, your idea is very workable and produces
meaningful and useful results ... you can review my paper from 2003:
You can see in section 6 the picture of a PDF
file created using XSLT and XSL-FO that formatted
my "one of everything instance using the ordinals
of the enumerations", thus I was able to visually
confirm the successful functionality of my stylesheets.
In fact, the process works very well backwards to
as a method of writing a formatting
specification: I gave the XPath file
enumerations to a subject matter expert who then
drew the required form and populated it with her
reckoning of which information items were needed,
indicated by her use of the ordinals in the
boxes. I then took that as if it were a
specification, wrote the transformation in XSLT
and XSL-FO, and I knew my transformation was
correct when my formatted result exposed the
identical set of ordinals as specified by the subject matter expert.
The success of this approach triggered the
conference paper and the sharing of the ideas and
how well it works for us in UBL.
Where to get a general purpose schema walker? I
figured that instance editors must be able to
walk schemas, and I'm sure many (most?)
commercial XML editors provide an option that
creates a "one of everything instance" ... though
the content of these information items is quite
arbitrary, unlike what I did for UBL by
populating each information item with its respective XPath ordinal.
However, talking with one of the companies
(thanks George!) it was shown to me quite
obviously that my enumerations of XPath files
cannot be generated in the general case. It
happens just that the stars align for UBL schemas
that I was able to do this. I abandoned pursuing
these concepts for schemas in the general case.
Hopefully you will be able to nurture your idea
with some of the concepts you'll see in my
paper. I've successfully maintained all of these
concepts with even the latest UBL 2.0 draft work
(I republish the XPath files with every new
release of schemas) and will be continuing to
deploy all these concepts when I write the
stylesheets for UBL 2.0. It works well with new
subject matter experts and they can easily
understand how to convey to me what they need
transformed in a form. We only had 8 document
types in UBL 1.0 and we will have 31 document
types in UBL 2.0 ... I cannot see any other way
we might be able to attack this amount of work.
I hope this helps, Hedley ... good luck in your
research. Please share what you find.
. . . . . . . . . . . . . Ken
UBL/XML/XSLT/XSL-FO training: Vårø, Denmark 2006-10-02/06,11-20/24
UBL International 2006 2006-11-13/17 http://www.ublconference.com
World-wide corporate, govt. & user group UBL, XSL, & XML training.
G. Ken Holman mailto:gkholman@...
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/f/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/f/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal