: "standalone " in the XML declaration, <?xml ... ? > 2003-05-11 - By Michael Rafael Glavassevich
It looks like a bug in the parser.
Changing lines 859 & 865 in Revision 1.86 of org.apache.xerces.parsers.AbstractDOMParser as shown below should fix the problem.
public void xmlDecl(String version, String encoding, String standalone, Augmentations augs) throws XNIException { if (!fDeferNodeExpansion) { // REVISIT: when DOM Level 3 is REC rely on Document.support // instead of specific class if (fDocumentImpl != null) { fDocumentImpl.setVersion(version); fDocumentImpl.setEncoding(encoding); - fDocumentImpl.setStandalone("true".equals(standalone)); + fDocumentImpl.setStandalone("yes".equals(standalone)); } } else { fDeferredDocumentImpl.setVersion(version); fDeferredDocumentImpl.setEncoding(encoding); - fDeferredDocumentImpl.setStandalone("true".equals(standalone)); + fDeferredDocumentImpl.setStandalone("yes".equals(standalone)); } } // xmlDecl(String,String,String)
----------------------------- Michael Glavassevich mrglavas@(protected) 4B Computer Engineering University of Waterloo
On Sun, 11 May 2003, Pae Choi wrote:
> When I try to get the "standalone" attribute value from the DOM after loading > the XML document from a file it *always* returns "false." > > I have a demo XML file containing two lines as: > > // ################ XML File ################## > <?xml version="1.0" encoding="UTF-8" standalone="yes"?> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"/> > > And the code snippet is as follows: > > // ################ CODE SNIPPET ################## > private void checkXMLDecl() { > // Create a factory object for creating DOM parsers > DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance( ); > DocumentBuilder builder = null; > Document xmlDOM = null; > > try { > // Now use the factory to create a DOM parser > builder = factory.newDocumentBuilder(); > xsDOM = builder.parse(xsdFile); > > // Get the xml declaration > System.out.println("version = [" + ((CoreDocumentImpl)xsDOM) .getVersion() + "]"); > System.out.println("encoding = [" + ((CoreDocumentImpl)xsDOM) .getEncoding() + "]"); > // ######################################################## > // The getStandalone() method does NOT work > if ( ((CoreDocumentImpl)xsDOM).getStandalone() ) > System.out.println("standalone is true"); > else > System.out.println("standalone is false"); > } > catch (Exception ex) { > } > } > > I have tested with Xerces v2.0.2, v2.2.1, and v2.4.0, but all three returns > the same result, "false." > > Any comments? > > > Pae > >
--------------------------------------------------------------------- To unsubscribe, e-mail: xerces-j-user-unsubscribe@(protected) For additional commands, e-mail: xerces-j-user-help@(protected)
|
|