← Prev in month
← Prev in thread
Next in thread →
Next in month →
RE: [xml-dev] how to save an n-ary tree of nodes to and from an x ml file?
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:] Sent: Monday, September 12, 2005 2:50 PM To: 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 <> 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>
← Prev in month
← Prev in thread
Next in thread →
Next in month →