[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Conditional document merge

Subject: RE: Conditional document merge
From: Mulberry Technologies List Owner<xsl-list-owner@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 28 May 2002 11:53:45 -0400
merg sort
>From: Damon Horrell <dhorrell@xxxxxxxxxxx>
>To: "'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'" <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
>Subject: RE:  Conditional document merge
>Date: Tue, 28 May 2002 10:39:36 +1200

>I think this does the sort order you want:
>
>	<xsl:template match="/">
>	
>		<xsl:variable name="docb" select="document('merge-b.xml')"/>
>	
>		<xsl:for-each select="root/*">
>			<xsl:sort select="boolean($docb//*[name() =
>name(current())])" order="descending"/>
>			<xsl:sort select="generate-id($docb//*[name() =
>name(current())])"/>
>			
>			<xsl:value-of select="name()"/>
>			
>		</xsl:for-each>
>		
>	</xsl:template>
>
>Run this over document A.
>
>I'll leave the rest to you.  Need to remove non-required fields, and get the
>titles from document B as a preference over document A.
>
>Damon
>
> >I've got a more or less classic problem of merging two XML documents.  The
>>gotcha's in this case are as follows:
>>
>>1) document A is guaranteed to contain all required nodes, and will include
>>some that are not needed, but the order of the nodes may be out of order.
>>
>>2) document B man not contain all required nodes, if it is missing any,
>some
>>may be flagged as being mandatory in document A, others may be optional and
>>will not be included in the output.  Document B will have all nodes in the
>>required order, any missing nodes can be substituted immediately following
>>any previous match.  Document B will contain attributes that override any
>>from document A.
>>
>>For example, document A might look like:
>>
>>    <root>
>>         <a required="1" title="Example 1"/>
>>         <b title="Example 2"/>
>>         <c title="Example 3"/>
>>         <d required="1" title="Example 4"/>
>>         <e title="Example 5"/>
>>    </root>
>>
>>Document B might look like:
>>
>>    <root>
>>         <e/>
>>         <a title=" New title 1"/>
>>         <c/>
>>    </root>
>>
>>The required output would be:
>>
>>    <root>
>>         <e title="Example 5"/>
>>         <a title=" New title 1"/>
>>         <c title="Example 3"/>
>>         <d title="Example 4"/>
>>    </root>
>>
>>Where element b is skipped because it is not in document B and is not
>marked
>>as required.
>>
>>Any opinions on what the best way to approach this is?  Currently I'm using
>>document B as the primary source and filling in any missing data from
>>Document A as I traverse document B.  However, I do not yet handle the case
>>of missing required nodes and I'm not sure how I would pick up on them?
>The
>>alternative of driving things from document A and throwing out the missing
>>not required nodes doesn't seem any simpler, or would there be some elegant
>>way of building a key against document A and then using document B to
>select
>>from it in the proper order automagically skipping the nodes that aren't
> >required and aren't in document B?
>>
>>Peter Hunsberger
>>
>>Phone: 901-495-5252
> >E-mail: Peter.Hunsberger@xxxxxxxxxx
>


-- 
======================================================================
B. Tommie Usdin                        mailto:btusdin@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com   
17 West Jefferson Street                           Phone: 301/315-9631
Suite 207                                    Direct Line: 301/315-9634
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML              
======================================================================

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.