[
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>
|