represent XML in classes/collections (C#)

B

Bart Steur

Hi

I want to represent the following XML structure in a class or classes.


<CATEGORY NAME="BASE">
<PERSON NAME="PERSON">M. Johnson</PERSON>
<JOBTITLE NAME="JOBTITLE">Director</JOBTITLE>
<SUBCATEGORY NAME="SUB">
<BUILDING NAME="BUILDING">Paris</BUILDING>
<FLOOR NAME="FLOOR">5</FLOOR>
<ROOM NAME="ROOM">6A</ROOM>
</SUBCATEGORY>
<PHONE NAME="PHONE">555-5626</PHONE>
<SCALE NAME="SCALE">C</SCALE>
</CATEGORY>

Where SUBCATEGORY is in fact a CATEGORY in a CATEGORY, but a SUBCATEGORY
cannot contain another SUBCATEGORY (only 1 level deep)

The tags specified are an example. This is not a fixed set of tags. It's
even possible that no SUBCATEGORY is specified.

I'm looking for a generic 'class solution'

thks
Bart
 
B

Bart Steur

Ha Martin,

Maybe I wasn't clear enough. I don't want a class representation of the XML
itself, I want a class/collection structure that can create/maintain the
following XML structure:

<category>
<attribute_n/>
...
<subcategory_n>
<attribute_n/>
...
</subcategory_n>
...
<attribute_n/>
...
<subcategory_n>
<attribute_n/>
...
</subcategory_n>
...
<attribute_n/>
...
</category>

Within that class I want to add/remove attributes and subcategories and
attributes within subcategories. The number of attributes within a category
is unknown, the number of attributes with a subcategory is unknown, also the
number of subcategories within a category is unknown.

What does that class look like, and do I need collections, or something else.

I'm a little stuck.

Thks,
Bart
 
R

Registered User

Ha Martin,

Maybe I wasn't clear enough. I don't want a class representation of the XML
itself, I want a class/collection structure that can create/maintain the
following XML structure:

<category>
<attribute_n/>
...
<subcategory_n>
<attribute_n/>
...
</subcategory_n>
...
<attribute_n/>
...
<subcategory_n>
<attribute_n/>
...
</subcategory_n>
...
<attribute_n/>
...
</category>

Within that class I want to add/remove attributes and subcategories and
attributes within subcategories. The number of attributes within a category
is unknown, the number of attributes with a subcategory is unknown, also the
number of subcategories within a category is unknown.

What does that class look like, and do I need collections, or something else.
The class will look a lot like the XmlNode type with a collection of
attributes and a collection of childnodes. It seems likely there will
be more than a single category. If this is the case the container
starts looking like an XML document.

Depending upon your actual needs you might consider writing a type
which maintains the data in a private/protected XmlDocument member.
The type's public methods provide a clean interface through which the
document and data may be manipulated. Private/protected helper methods
can perform the various CRUD operations behind the pretty interface.

i.e.
public class MyDataContainer
{
private XmlDocument doc;
...
public bool AddSubcategory(
string CategoryName,
string SubcategoryName,
string[] SubcategoryAttributes)
{...}
...
}

It may be possible to do something similar with the XDocument family.

regards
A.G.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top