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


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: DTD to XPath

[ Lists Home | Date Index | Thread Index ]
  • From: Robin LaFontaine <robin@monsell.co.uk>
  • To: Marcus Carr <mrc@allette.com.au>, XML Dev <xml-dev@XML.ORG>
  • Date: Thu, 25 May 2000 10:39:56 +0100


I have done this for a syntax very similar to XML and there are a 
couple of points to watch:

You say there is no endless recursion, but there could be recursion, e.g.

<!ELEMENT b     (d*, a)>

would cause recursion, quite reasonably!

You will also have to watch the difference between two different routes, e.g.

<!ELEMENT b     (d*, a, d)>

if the difference between the two places where d can occur is 
significant. It is probably the case for your DTDs that they do not 
have this type of element declaration, but in the general case it may 
need to be handled!

Enjoy writing the implementation!

At 10:42 am +1000 25/5/00, Marcus Carr wrote:
>Steve DeRose wrote:
> > >I seem to recall seeing an announcement for something that would take a
> > >DTD as input and produce XPath addresses for every element - can anyone
> > >provide a pointer? Thanks,
> >
> > If I'm understanding your question right, such a thing is not possible,
> > because a DTD contains no element instances, only declarations of element
> > *types*; and XPath intentionally does not provide a way to point to such
> > declarations.
>Sorry, I should have explained more fully - I'm looking for 
>something that will
><!DOCTYPE a     SYSTEM "a.dtd" [
><!ELEMENT a     (b?, c+)>
><!ELEMENT b     (d*)>
><!ELEMENT c     (#PCDATA)>
><!ELEMENT d     (#PCDATA)>
>and produce:
>I need this because I need to build a table that associates every one of
>several hundred elements in a collection of DTDs with their equivalent field,
>collected either via HTML forms or generated by another part of the system. I
>want to use XPath expressions to allow me to check off every fragment of data
>from both sides of the equation - the structure and the interface.
> > If you perhaps instead mean that you want something to produce, for each
> > element type declared in a DTD, the XPath expression that will refer to all
> > instances of that element type, then it is possible but also trivial: for
> > each element type name declared, write out the element type name with "//"
> > in front....
>I realise that, but in this case, the full path of the hierarchy is just as
>important as the element name. I understand the issues with optionality and
>repeatability, but they won't cause a problem. Additionally, there are
>"bottoms" to the DTDs - that is, there there is no endlessly looping 
>Was I imagining that someone had something to do this? (It's happened
>Marcus Carr                      email:  mrc@allette.com.au
>Allette Systems (Australia)      www:    http://www.allette.com.au
>"Everything should be made as simple as possible, but not simpler."
>       - Einstein
>This is xml-dev, the mailing list for XML developers.
>To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
>List archives are available at http://xml.org/archives/xml-dev/

-- -----------------------------------------------------------------
Robin La Fontaine, Monsell EDM Ltd
(R&D Project Management, Engineering Data Exchange using XML, EDIF)
Tel: +44 1684 592 144 Fax: +44 1684 594 504 or +44 870 054 2811
Email: robin@monsell.co.uk       http://www.monsell.co.uk

This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/


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

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