Michael Glavassevich wrote:
Hello Ittay,
A Document's DOMConfiguration [1] is used when
Document.normalizeDocument() is invoked. I wouldn't assume that Xalan
calls that method so you likely need to call it yourself. Probably worth
noting that in-memory DTD validation using normalizeDocument() was
completely broken prior to Xerces 2.8.0. I spent a couple weeks last year
fixing many of the major bugs but didn't get around to all of them before
the release (though I hope to stamp the rest out before Xerces 2.9). I've
never checked whether getElementById() works after calling
normalizeDocument() with DTD validation enabled but glancing over the
current code I suspect it doesn't.
ouch.
is there a way to make it work?
[1]
http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#Document3-domConfig
Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: [EMAIL PROTECTED]
E-mail: [EMAIL PROTECTED]
Ittay Dror <[EMAIL PROTECTED]> wrote on 04/09/2006 09:27:15 AM:
i've turned on the schema and validation features, and set a schema
to my html, but getElementById still doesn't work (i'm using the
latest of xerces, xalan and tagsoup, xhtml1-transitional.dtd and
entities are saved locally.
this is my html:
<html>
<body>
<div id="foo">hello</div>
</body>
</html>
this is my code:
import org.apache.xalan.xsltc.trax.SAX2DOM;
import org.apache.xerces.jaxp.DocumentBuilderFactoryImpl;
import org.ccil.cowan.tagsoup.Parser;
import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class Test {
public static class HTMLDocumentBuilderFactory extends
DocumentBuilderFactoryImpl {
public HTMLDocumentBuilderFactory() throws SAXException,
ParserConfigurationException {
setValidating(true);
setFeature("http://apache.org/xml/features/validation/schema
", true);
setFeature("http://xml.org/sax/features/validation", true);
}
}
public final static void main(String[] args) throws Exception {
Parser p = new Parser();
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
HTMLDocumentBuilderFactory.class.getName());
SAX2DOM sax2dom = new SAX2DOM();
Document doc = (Document)sax2dom.getDOM();
DOMConfiguration config = doc.getDomConfig();
config.setParameter("schema-type","http://www.w3.org/TR/REC-xml");
config.setParameter("schema-location",
"/tmp/xhtml1-transitional.dtd");
p.setContentHandler(sax2dom);
InputSource docsrc = new InputSource("/tmp/test.html");
p.parse(docsrc);
System.out.println(doc.getElementById("foo"));
}
}
thanx,
ittay
--
===================================
Ittay Dror
openQRM Team Leader,
R&D, Qlusters Inc.
[EMAIL PROTECTED]
+972-3-6081994 Fax: +972-3-6081841
http://www.openQRM.org
- Keeps your Data-Center Up and Running
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
===================================
Ittay Dror
openQRM Team Leader,
R&D, Qlusters Inc.
[EMAIL PROTECTED]
+972-3-6081994 Fax: +972-3-6081841
http://www.openQRM.org
- Keeps your Data-Center Up and Running
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]