OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] how to save an n-ary tree of nodes to and from an xml file

[ Lists Home | Date Index | Thread Index ]

Anil -

Your ListOfNodes element should be a complexType (as referenced by
childNodes). Something like this might work:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
   elementFormDefault="qualified"
   attributeFormDefault="unqualified">

   <xs:complexType name="ListOfNodes">
      <xs:sequence>
         <xs:element ref="Node" minOccurs="0"
            maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:complexType>

   <xs:element name="Node">
      <xs:annotation>
         <xs:documentation>ACD nodes - 2. Copyright juwo LLC
2005</xs:documentation>
      </xs:annotation>
      <xs:complexType>
         <xs:sequence>
            <xs:element name="childNodes" type="ListOfNodes"/>
            <xs:element name="data" type="xs:string"/>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema> 

Doug

-----Original Message-----
From: Anil Philip [mailto:goodnewsforyou@yahoo.com] 
Sent: Monday, September 12, 2005 2:50 PM
To: xml-dev@lists.xml.org
Subject: RE: [xml-dev] how to save an n-ary tree of nodes to and from an xml
file?

Michael, Thanks for your reply.
Yes, I removed the parent link. However I think the schema is not correct -
XML Spy complains but I cant see whats wrong:
---
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
elementFormDefault="qualified"
attributeFormDefault="unqualified">
	<xs:element name="Node">
		<xs:annotation>
			<xs:documentation>ACD nodes - 2. Copyright juwo LLC
2005</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="childNodes"
type="ListOfNodes"/>
				<xs:element name="data" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
		<xs:element name="ListOfNodes">
			<xs:complexType>
				<xs:sequence>
					<xs:element ref="Node" minOccurs="0"
maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:complexType>
		</xs:element>
	</xs:element>
</xs:schema>

--- Michael Kay <mike@saxonica.com> wrote:

> > I am trying to find how to implement something in
> XML
> > and was disappointed and surprised to find not too many in-depth 
> > tutorials or information; unlike in
> Java
> > where the Sun Java tutorial at java.sun.com is
> enough
> > to get one working productively...
> > [ok, rant over]
> > 
> > ---
> > I am trying to represent a n-ary tree of nodes in
> xml.
> > More accurately, I am trying to save/instantiate a tree of nodes 
> > to-from an xml file.
> > Am finding it difficult trying to represent the parent-child 
> > relationships.
> > 
> > Java: (simplified)
> > -----
> > 
> > class Node {
> > Arraylist childNodes;
> > Node parent;
> > String data;
> > }
> 
> The "parent" pointer here is redundant (you could reconstruct it from 
> other information). In my experience, when designing XML data 
> structures it's best to avoid such redundancy. All it achieves is to 
> increase the burden on senders to make the document consistent and on 
> recipients to check that it is indeed consistent.
> 
> Once you eliminate the redundancy, you seem to have a pure hierarchy, 
> with a very natural XML representation:
> 
> <node>
>   <node>
>     <data>x</data>
>   </node>
>   <node/>
>   <node>
>     <node/>
>     <node>
>       <data>x</data>
>       <node/>
>       <node/>
>     </node>
>   </node>
> </node>
> 
> Of course, you could flatten this if you prefer so all the nodes are 
> on the same level, and the hierarchic relationship are represented by 
> id/idref attributes. But it seems more natural to use the XML 
> hierarchy to represent the information hierarchy when you can.
> 
> Michael Kay
> http://www.saxonica.com/
> 
> 
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com 

-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an initiative
of OASIS <http://www.oasis-open.org>

The list archives are at http://lists.xml.org/archives/xml-dev/

To subscribe or unsubscribe from this list use the subscription
manager: <http://www.oasis-open.org/mlmanage/index.php>




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS