[FYI] "standalone" in the XML declaration, <?xml ... ?> [message #22100] |
Tue, 13 May 2003 00:57 |
Eclipse User |
|
|
|
Originally posted by: paechoi.earthlink.net
This may be OT here, but I am forwarding this for those who might
need to knwo and/or working on the XML declaration in XML Schema.
Pae
> 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@engmail.uwaterloo.ca
> 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
> >
> >
|
|
|
Powered by
FUDForum. Page generated in 0.03589 seconds