Connecting Tech Pros Worldwide Forums | Help | Site Map

represent XML in classes/collections (C#)

Bart Steur
Guest
 
Posts: n/a
#1: Sep 22 '08
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



Martin Honnen
Guest
 
Posts: n/a
#2: Sep 22 '08

re: represent XML in classes/collections (C#)


Bart Steur wrote:
Quote:
I want to represent the following XML structure in a class or classes.
Try xsd.exe to first infer a schema from the XML, then to infer classes
from the schema:
http://msdn.microsoft.com/en-us/libr...0s(VS.80).aspx

--

Martin Honnen --- MVP XML
http://JavaScript.FAQTs.com/
=?Utf-8?B?QmFydCBTdGV1cg==?=
Guest
 
Posts: n/a
#3: Sep 24 '08

re: represent XML in classes/collections (C#)


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

"Martin Honnen" wrote:
Quote:
Bart Steur wrote:
>
Quote:
I want to represent the following XML structure in a class or classes.
>
Try xsd.exe to first infer a schema from the XML, then to infer classes
from the schema:
http://msdn.microsoft.com/en-us/libr...0s(VS.80).aspx
>
--
>
Martin Honnen --- MVP XML
http://JavaScript.FAQTs.com/
>
Registered User
Guest
 
Posts: n/a
#4: Sep 24 '08

re: represent XML in classes/collections (C#)


On Wed, 24 Sep 2008 07:38:01 -0700, Bart Steur
<BartSteur@discussions.microsoft.comwrote:
Quote:
>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.

Quote:
>I'm a little stuck.
>
>Thks,
>Bart
>
>"Martin Honnen" wrote:
>
Quote:
>Bart Steur wrote:
>>
Quote:
I want to represent the following XML structure in a class or classes.
>>
>Try xsd.exe to first infer a schema from the XML, then to infer classes
>from the schema:
>http://msdn.microsoft.com/en-us/libr...0s(VS.80).aspx
>>
>--
>>
> Martin Honnen --- MVP XML
> http://JavaScript.FAQTs.com/
>>
Closed Thread