Merging XML Documents (with ADO.NET?)

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have got 2 XML documents, both of which conform to the same XSD Schema,
which define possible optional elements. The 2 XML documents contain 2
disjoint set of XML elements.

What is the best, easiest, most efficient way of merging the 2 XML
Documents? Can I use DataSet.Merge() facility in ADO.NET?? Any
pre-requisites?

Any other suggestions?
 
Patrick,

Can you provide an example of each XML document? Its not clear to me how
the schema can be the same if each XML document has different sets of XML
elements.

Also, you didn't indicate what you wanted to do after merging the XML
documents. By mentioning a DataSet, I assume you want to work with the
combined data in tables and views.

The simplest suggestion I have, without more info, is to simply concatenate
remove the root tag of one XML document and append the fragment to the other
XML document.

Ad.
 
Example XML documents are:
<!--Start First XML Document!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-->
<?xml version="1.0" encoding="UTF-8"?>
<FormDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Forms.xsd">
<FormName FormTypeAttrib="Country">Form A</FormName>
<FormTitle>Static Form Title</FormTitle>
</FormDefinition>
<!--end First XML Document!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-->

<!--Start Second XML Document!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-->
<?xml version="1.0" encoding="UTF-8"?>
<FormDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Forms.xsd">
<UserDescription InputType="TextArea" ReadFromDB="true">This is what the
user can fill in</UserDescription>
<SignOffs>
<Staus InputType="DropDownList" ReadFromDB="true"/>
<Comment InputType="TextArea" ReadFromDB="true"/>
</SignOffs>
</FormDefinition>
<!--End First XML Document!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-->

They can share the same XSD Schema because the XSD elements are defined as
optional! After I merge the XML documents, I intend to iterate through it
and based on the attributes, etc. render an ASP.NET webform. What is the
best way of merging them?
 
Hi Patrick,

I agree with Sahil that only an Xml which is qualified to be a DataSet can
be loaded to a DataSet object and merged by DataSet.merge. From the Xml
snippet you have posted, I suggest you load them to an XmlDocument and
merge them in the XmlDocument.

HTH.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."
 
Hi Patrick,

The XmlDocument doesn't care about the order of data. If you really need to
merge the two documents with order, you have to add an ID just as you
mentioned.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."
 
Back
Top