< prev index next >

src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXBaseWriter.java

Print this page

        

@@ -1,8 +1,7 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
+ * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -34,28 +33,29 @@
 import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 import org.xml.sax.ext.LexicalHandler;
+import org.xml.sax.ext.Locator2;
 import org.xml.sax.helpers.DefaultHandler;
 
-
 public abstract class SAX2StAXBaseWriter extends DefaultHandler
                 implements
                         LexicalHandler {
 
-
         protected boolean isCDATA;
 
         protected StringBuffer CDATABuffer;
 
         protected List<String> namespaces;
 
         protected Locator docLocator;
 
         protected XMLReporter reporter;
 
+    String xmlVersion = null, encoding = null;
+
         public SAX2StAXBaseWriter() {
         }
 
         public SAX2StAXBaseWriter(XMLReporter reporter) {
                 this.reporter = reporter;

@@ -67,18 +67,36 @@
 
         public void setDocumentLocator(Locator locator) {
                 this.docLocator = locator;
         }
 
+    private void updateVersionAndEncoding() {
+        if (docLocator != null && docLocator instanceof Locator2) {
+            Locator2 l2 = (Locator2) docLocator;
+            xmlVersion = l2.getXMLVersion();
+            encoding = l2.getEncoding();
+        }
+    }
+
+    public void setXmlVersion(String version) {
+        this.xmlVersion = version;
+    }
+
+    public void setEncoding(String encoding) {
+        this.encoding = encoding;
+    }
+
+    void writeStartDocument() throws SAXException {
+        updateVersionAndEncoding();
+    }
 
         public Location getCurrentLocation() {
                 if (docLocator != null) {
                         return new SAXLocation(docLocator);
                 } else {
                         return null;
                 }
-
         }
 
         public void error(SAXParseException e) throws SAXException {
                 reportException("ERROR", e);
         }

@@ -123,11 +141,10 @@
                 }
                 namespaces.add(prefix);
                 namespaces.add(uri);
         }
 
-
         public void endPrefixMapping(String prefix) throws SAXException {
         }
 
         public void startCDATA() throws SAXException {
                 isCDATA = true;
< prev index next >