Using grammars to generate XML data

Amit Rekhi amitr at abinfosys.com
Wed Jun 30 13:24:56 BST 1999


Hello,

PROBLEM STATEMENT
Traditionally, an XML grammar (something like what's defined in the spec)
is used by parsers to check the syntax of input XML files
for conformance to XML.
My problem:
- Is it proper usage of an XML grammar to be used by
XML data generators to generate XMLised data?i.e
I am wanting to use an XML grammar not to validate XML data
but to generate XMLised data conforming to that grammar.
 Is it logical, proper to be using an
XML grammar for driving a XMLised data generator application?
- If yes, how would such a XML data generator
implement the production rules and use them to generate XMLised data?

Let me explain my point with an example.
Let's say I have the following XML grammar:

[1] Document  := '<Document>' (Element)+ '</Document>'
[2] Element     := '<Element>' CharData '</Element>'
[3] CharData  := [^<&]* - ([^<&]* ']]>' [^<&]*)

Let's say I wish to build an XMLised data generator which
would take the following input  stream:
'abc'
and produce the following output stream:
<Document>
  <Element>a</Element>
  <Element>b</Element>
  <Element>c</Element>
</Document>
This is an XMLised version of the input stream conforming to rules 1-3
above.
In order to produce the above XMLised output thru the XMLised generator
I am planning
- To let the data generator use rules 1-3 i.e.
For an input 'abc' the data generator would
- start building a syntax tree with non terminal 'Document' as the root,
looking at rule [1],
- On each character of the input stream encountered, the 'Element' non
terminal
(rule [2]) present in rule [1] would be expanded and the current input
character
would replace the 'CharData' non terminal in rule [2]
This way I can get the the entire XMLised output as a parse tree using the
XML grammar. This XML parse tree can then be outputted to a file.

- Would it be proper grammar usage to be writing a 'XML data generator'
application which would use rules 1-3 to generate XML data
conforming to rules 1-3?
- Are there any such data generators available?If so I'd be
grateful if someone could pass me relevant pointers on the web.
- How would such a data generator application implement
the grammar rules?
Thanks in advance for any replies,


Amit Rekhi,
Software Engineer,
A.B. Infosys Private Limited,
B-102, Gulmohar Park,
New Delhi - 110049,
INDIA.
Tel: +91-11-6512816,6512822,6968976
Fax: +91-11-6518873
Website: http://www.abinfosys.com
EMail: amit at abinfosys.com



xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list