XMLC To-Do List
Note: this list needs to be reviewed, some things maybe done or may no
longer need to be done
Misc
Need to figure out ways to improve compatiblity for already
compiled objects between XMLC release.
Setting of standalone header in XML files is not handled correctly.
org.enhydra.xml.io.XMLFormatter.writeXMLHeader() set standalone
if there is no system of public id. However, it's possible to
have a document that has no system or public id, with the
document have the DTD in the internal subset, yet references
external external entities. This is demonstated by:
tests/org/enhydra/xml/xmlc/xml/input/bigentity/BigEntityTest.vxml
which had to be modified for the tests. It wasc hanged to
use the Document.getStandalone(), but XMLC doesn't set this option in
generated code.
Can't handle recompiliation when pages are on different drives
than the JDK. Because parameters get passed to java.exe and
and javac.exe that begin, not with a drive letter, but with a backslash.
This is because Recompiler.getMetaData() is calling getPath()
DocumentType entity nodes are not build in XML documents.
Disable tidy from deleting empty span tags.
Invalid characters in an encoding should be mapped by the formatter
to a character entity reference, not to allowed to fall though
to the java encoding which then outputs as `?'. Currently a work
around of Emoji Shift_JIS characters, but need a general solution.
-urlsetting no longer take precedence over -urlmapping.
getElementById doesn't work for XML
Add command line option to set documentFormat.
Detected attempts to parse XHTML with the HTML parser
Create getText for all PCDATA.
Ceate cleaner way to manage DOMFormatter (DOMWriter???)
Add option to expand entity references on formatting.
xHTML support.
Finish tests based on the OASIS XML parse conformance tests
Upgrade Tidy parser.
Create LazyDOM version of WML DOM.
Straighten out relationship between DOM factory and W3C DOMImplementaion
created documents.
Add test for compiling file with a schema.
Include WML 1.2 and 1.3 DTDs.
LazyHTMLDocument should consider templates when doing getHead(), getBody(), etc.
JAXP support for DOMParser object.
Need to do performance analysis of Lazy DOM.
Recompilation needs to be awayre of SSI.
Need to do performance analysis of compile.
Review use of HashTable; convert some to HashMap and some to HashSet.
URL rewriting only works when the XMLC document object is passed
to the formatter. Passing the contained document or any other
node results in no URL rewriting. This restriction is caused
by the inability to get back to the XMLObject from the DOM.
Should ignorable whitespace be preserved by XMLC?
HTML formatter should preserve DOCTYPE declaration.
When using the metadata API, the source file for HTML can't contain
file: and the XML files must contain file: (per PM).
Create WML Lazy DOM.
It should be possible to compile a file just specifying a metadata
file.
It appears that disabling entity reference expansion for XML parsing
causes character entity to be reference nodes, which is painful
Need options to control entity reference expansion.
The DOMFormatter supports formatting HTML as XHTML and XHTML as HTML,
however the preformatted text of the arguments will output the wrong
arguments. Also, how should XHTML character entities be handled?
Add Ant task definition to XMLC
Compiling with -dom xerces creates a discarded element
$elem1 = document.getDocumentElement();
document.createElement("HTML");
Need to URL mapping order and behavior; including how it works
with XML files.
add more setText*() methods. Maybe check for text child.
<H1>, <P>.
Should generated classes be serializable?
Need carry forward information about which attributes have
URLs for runtime substitution.
Should W3C HTML 4.0 header be included in HTML output?
Generated function to create object maybe too large.
(Can't reporduce yet).
Missing DOM support that must be implemented:
- notationDecl - Have notation, but its not writable..
- unparsedEntityDecl - No way to create
DocumentType stuff:
- creating document types.
- ElementDecl.
- attlistDecl
- internalEntityDecl - All by Entity..
- externalEntityDecl
- unparsedEntityDecl
- parameterEntity
- notationDecl
One issue is when entity references are expand, particularly
in things like internal DTDs. Should entities be expanded
in the XMLC object? XP expands them.
Mark Tierney <mark@sics.se>
Wants a way for all access methods to return Element:
The error-checking I'm talking about is that when compiling the
XMLC-generated file, we get an error if the wanted id(s) are not
present in the XML file. Yes, it sounds better to check the return
types as well, but unfortunatley, that is not possible when we're
using more than one DTD.
Bugs
- XMLC reported to not generate access methods for id attributes when
the element is in a namespace.
- Default attributes in XML files don't work.
- The Xerces parser does not have a way to get attribute values with
entity references unexpanded. In a future release, this maybe
changed to leave attribute-value entity references unexpanded.
- HTML 4.0 character entities are not supported by the browsers.
Everything after yuml does not work. These are not currently
used, but need some way to use them.
- Figure out another workaround for the I.E. <SPAN> ID attribute
bug.
- Encoding is not correct for -docout on XML files.
- Tidy parser does not understand onfocus attribute.
- html test-5.9 causes the tidy parser to hang.
- The -methods option may not work any more. Should also print
constants.
- An illegal <xxx/> tag in HTML is reported to cause XMLC to
hang (see test-4.5).
- LazyDOM needs a Document.getElementsByTagName and getElementById that does not cause
expansion of intermediate nodes. Need to resolve differences between HTML and XML
versions of these methods.
Possible Enhancements and Missing Functionality
- Add support for define the attributes that are to be treated in as
HTML-style classes in a XML document. Allow wildcard for
element name, or maybe just use different options, such as
-class-attr attrname
and
-class-tag-attr elementname attrname
.
- Add an option to copy elements from a source XMLC object to the
one being compiled. Support libraries of source XMLC objects.
These could be used for sources of javascript code, etc.
- Need a way go do URL mapping in XML.
- Integrate Andy's XMLC object verification.
- Define a XML DTD for *.xmlc files. This contains options,
verification information, english descriptions of fields, etc.
A general meta-data file to associate with an XML file.
- Add ability to generate interfaces for localizations, page recompilation.
this will need the ability to restrict the ids that have access methods
generated
- The HTML Tidy parse deletes empty SPAN tags. Its not necessarly
desired and it might not even be the right thing for tidy to do in
general. This needs investigated.
- JTidy handles only a few, compiled in encodings. This could use the
Java string encoding/decoding facility.
- Add optional handling of server-side include syntax.
- Allow Parser to take input streams instead of disk files.
Use SAX InputSource for this.
- Several methods, such as URL attributes, need to be moved to the
XMLCDomFactory to allow for more flexable documents. Maybe some sort
of handling callback, which would get ride of HTMLDocBuilder and
would allow document builders to do special hacks.
- Need to set the encoding for HTML files.
- Add support for XHTML.
- The xmlc command should be extensible with other classes, being
able to add in new options. This requires extensible metadata.
- Add control over error handling on XMLC recompilation. Include
an option to cause it to just log an error and fall back to the
old class.
- Add support for subdocument classes (as proposed by kunze@opus5.de)
and other features required to support skins.
- A way to associate MIME type with document from command line.
- Added support for calling the javac compiler directly in the same
JVM, rather than execing.
- Added support for compiling multiple documents in a single invocation
of XMLC.
- Build tests for Chinese support using: http://www.ascc.net/xml/test/
- libxml (ftp://ftp.gnome.org/pub/GNOME/stable/sources/libxml/) has a
test suite that look really great and could be used for XMLC.
- Add metaconfig for chosing DOM factory based on public or system
id.
- Might be better to drop parser.DOMBuilder and use native DOMParser;
however this might prevent the use of different DOM impls.