|
Subject: using XML to reference XML; XPointers and keys From: Mike Brown <mbrown@xxxxxxxxxxxxx> Date: Mon, 15 Nov 1999 11:19:00 -0700 |
Perhaps someone can help. I have some source data that looks like:
<doc1>
<MyData id="101">...</MyData>
<MyData id="102">...</MyData>
...
</doc1>
And I reference it in multiple places in another XML tree:
<doc2>
...
<MyDataRef idref="102"/>
...
<MyDataRef idref="102"/>
...
<MyDataRef idref="101"/>
...
</doc2>
I process doc2 with an XSLT stylesheet. When I need to access the MyData
that has the same @id as the MyDataRef @idref, I use a key. This is a fine
abstraction since I have something to key on.
But now I also have to use some source data that looks like this, with
nothing consistent to key on:
<doc3>
<Merchant MerchantID="123">
<ContactInfo>
<Name>Joe's Pizza</Name>
<Address>1111 22nd Ave</Address>
<City>Cleveburgville</City>
<State>OH</State>
<Phone>2165551212</Phone>
</ContactInfo>
...
</Merchant>
</doc3>
I'd like to be able to reference this data in a similar way. I'd like to be
able to have in doc2 something like:
<MyDataRef elementref="Address"/>
And then use a key to get the appropriate node in doc3. I think this can be
done, but things get tricky when I need to have repeating elements in doc3.
For example, Address can appear in a different context:
<doc3>
<Merchant MerchantID="123">
<ContactInfo>
<Address>1111 22nd Ave</Address>
</ContactInfo>
<BillingInfo>
<Address>2222 11th St</Address>
</BillingInfo>
</Merchant>
</doc3>
How can I point to just the Address that's a child of ContactInfo? Defining
<MyDataRef elementref="/doc3/Merchant/ContactInfo/Address"/> is useless
because I can't, without some kind of recursive voodoo that breaks down as
soon as you hit a predicate, use that elementref string to obtain a
node-set.
It seems like XPointer covers this territory, using an element in a custom
namespace to point to particular nodes or locations in a document's data ...
but it would be up to the XSLT engine to implement them, right?
Any other suggestions for a way to abstract the doc3 data?
-Mike
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Call for Paper, Bovone Stefano | Thread | Using XSLProcessor.parse(InputStrea, Diarmuid Mac Carthy |
| Call for Paper, Bovone Stefano | Date | Using XSLProcessor.parse(InputStrea, Diarmuid Mac Carthy |
| Month |