Subject: Re: Newbie - trying to extract specific values from XML file.
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 22 Mar 2004 12:19:00 -0500
|
At 11:27 AM 3/22/2004, you wrote:
On Fri, 19 Mar 2004 12:29:05 -0500, wrote:
> By putting all the code in the root template you make it very large, so
you'll have to be careful not to get lost. On the other hand, by putting
all the code in the root template, you fix your context so all XPath
expressions start at the same place.
Thanks Charles, I need to have a play with it to see which is going to be
the easiest to maintain.
Either way the template is going to be massive. It would be nice if there
was some way of being able to break it down into a number of smaller
documents, particularly since some of the 'if' statements are inserting
some massive sections.
This is easily done by delegating some of the logic to separate templates,
which are fired by selecting the apply-templates instruction (your pull
shifts to a push), or more rigidly by simply using a named template and the
call-template instruction (so applying a template by calling it by name
instead of selecting a node which matches it).
One characteristic of "push" is that the logic is distributed among a set
of templates, whereas with "pull" it is often (or may as well be) in a
single template. This also accounts for the flexibility of "push" in
situations where the structure of the input is highly variable (since you
can select whatever nodes are there and the proper templates will be found
to match them).
Cheers,
Wendell
======================================================================
Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
|