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] Help for finding root node from XML Schema

[ Lists Home | Date Index | Thread Index ]

Your example and question indicate that you need to understand that a schema does not indicate a "root node" and that's why you've gotten the answers you have. However, if you ask a different question, "How can I identify the elements likely to be used as root nodes?" you might get a different answer. You have omitted the detail in your example, but it is probably true that the comment element is a possible child of the purchaseOrder element.
The traditional heuristic that tools use to find candidate root nodes from a DTD (and now schema) is to find all descendants of each top-level element. Any element that doesn't appear as another element's descendent is a candidate root node. This heuristic has been used with good results with both SGML and XML for many years when, e.g., a tool wants to display a DTD/schema graphically as a tree.
Having said that, note the following:
- It is possible that this heuristic will not turn up any elements (recursive root) or more than one element.
- Regardless, any top-level element can serve as a root node.
Consequently, a user interface that needs to identify a root node should always display all top-level elements and allow the user to choose. As a convenience, it might use the heuristic to pre-select one of the elements as the default root.
Bob Foster
----- Original Message -----
Sent: Friday, October 10, 2003 6:24 AM
Subject: [xml-dev] Help for finding root node from XML Schema

Hello all,
I am new to XML and XML Schema. I am working on a project which involves visual display of XML Schema. For parsing  XML Schema I am using MSXML 4.0
My problem is How to get element  which will become root element of XML document which uses this schema.
 <xsd:element name="purchaseOrder" type="PurchaseOrderType" />
 <xsd:element name="comment" type="xsd:string"/>
 <xsd:complexType name="PurchaseOrderType">
  <xsd:sequence> ...
  <xsd:attribute name="orderDate" type="xsd:date"/>
When I parse above schema first call to get_childs returns two childs 1 ) comment 2) purchaseOrder.
So how to determine which is root?
Thanks & Regards,
 Priti Patil


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

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