JUMBO
Norbert H. Mikula
nmikula at edu.uni-klu.ac.at
Mon Mar 24 08:21:05 GMT 1997
Peter Murray-Rust wrote:
> NXP has an interface Esis, with function such as open_tag, close_tag,
> process_instruction, etc. [I think they would be more properly called
> start_element??].
You are absolutely right !
> JUMBO uses this to build up a Vector representing the
> ESIS event stream, somthing like:
> "_START_TAG" "CML" AttributeList "_START_TAG" "MOL" ... "_END_TAG" "MOL"...
> JUMBO then builds a tree out of this, adding attributes, etc.
>
> NXP has a class XML which is built by JACC. This contains inter alia
> an Esis_Stdout object (implements Esis). There are several objects in XML
> which are private and therefore not easily accessed -
Would it be possible to send me a list of those objects ?
> I think they should
> have accessors, but at present I have subclassed it to PMRXML, which has
> the requisiste accessors.
>
> My test program then creates a PMRXML object, and extracts the event stream
> which is then passed to JUMBO's existing tree object:
> NXP.PMRXML xml = new PMRXML(NXP.Streams.load_File(file, true));
> pmr.chemime.ChemTree chemTree = new ChemTree(xml.getStreamVector());
> pmr.sgml.GeneralTOC toc = chemTree.createGeneralTOC(3);
>
> Comments: I have still to work out what whitespace NXP creates - there seems
> to be a lot of content which is simply white. Maybe we have to address
> COLLAPSE and KEEP at this stage?
As soon as I will know how the standard defines the treatment of
whitespace
in all those scenarios, for instance w/ DTD w/o DTD, in element content
etc.
I will implement it that way. (I admit that the whitespace is really
annoying, but
I didn't want to waste my time with experiments.)
> Also it isn't easy to extract certain
> info - for example I had to hack XML.java to get the doctype - this isn't a good
> idea and we need an accessor.
People didn't seem to be too interested in my idea of an interface for
passing along a complete grove. At least I didn't get too much
feedback.
> I am also still not clear how NXP does (or should)
> behave with:
> <!DOCTYPE CML>
> and <!DOCTYPE CML SYSTEM "cml.dtd">
> (the default on the latter is to try to validate, I think, even if validate
> is set to false. I'd prefer to be able to turn off validation, but I may have
> missed something).
I will check it. Thank's for pointing it out to me !
> In general I'd like to be able to treat NXP as a black box, and subclass
> my Esis object. That could mean passing it as an argument to XML, e.g.:
>
> public class PMREsis implements Esis {
> public void open_tag(String name) {
> ...
> }
> }
>
> PMREsis esis = new PMREsis();
> NXP.XML xml = new NXP.XML(esis, NXP.Streams.load_File(file, true))
> pmr.sgml.SGMLTree tree = new pmr.sgml.SGMLTree(xml);
That's the basic idea that I had in mind. We really must continue with
working on our unified interface for XML/Java based applications.
--
Best regards,
Norbert H. Mikula
=====================================================
= SGML, DSSSL, Intra- & Internet, AI, Java
=====================================================
= mailto:nmikula at edu.uni-klu.ac.at
= http://www.edu.uni-klu.ac.at/~nmikula
=====================================================
xml-dev: A list for W3C XML Developers
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To unsubscribe, send to majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
List coordinator, Henry Rzepa (rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list