represent XML in classes/collections (C#)

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Bart Steur

    represent XML in classes/collections (C#)

    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">55 5-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

    #2
    Re: represent XML in classes/collections (C#)

    Bart Steur wrote:
    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:


    --

    Martin Honnen --- MVP XML

    Comment

    • =?Utf-8?B?QmFydCBTdGV1cg==?=

      #3
      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:
      Bart Steur wrote:
      >
      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:

      >
      --
      >
      Martin Honnen --- MVP XML

      >

      Comment

      • Registered User

        #4
        Re: represent XML in classes/collections (C#)

        On Wed, 24 Sep 2008 07:38:01 -0700, Bart Steur
        <BartSteur@disc ussions.microso ft.comwrote:
        >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[] SubcategoryAttr ibutes)
        {...}
        ...
        }

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

        regards
        A.G.

        >I'm a little stuck.
        >
        >Thks,
        >Bart
        >
        >"Martin Honnen" wrote:
        >
        >Bart Steur wrote:
        >>
        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/
        >>

        Comment

        Working...