aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoraefimov <none@none>2015-07-15 18:40:53 +0300
committeraefimov <none@none>2015-07-15 18:40:53 +0300
commit64c1228e90271bbb54eb985b68c977dfdd548e14 (patch)
treed9dac942ffee46d3c3d92b351a8125df9ced2112 /src
parente87138e0d773daca858315c09dcd32c52f612189 (diff)
downloadjdk8u_jaxp-64c1228e90271bbb54eb985b68c977dfdd548e14.tar.gz
8130078: Document better processing
Reviewed-by: dfuchs, lancea, ahgross
Diffstat (limited to 'src')
-rw-r--r--src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java20
-rw-r--r--src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java7
-rw-r--r--src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java9
3 files changed, 34 insertions, 2 deletions
diff --git a/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java b/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java
index 5cbdc01..a54234b 100644
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java
@@ -380,6 +380,26 @@ implements XMLDTDScanner, XMLComponent, XMLEntityHandler {
} // scanDTDInternalSubset(boolean,boolean,boolean):boolean
+ /**
+ * Skip the DTD if javax.xml.stream.supportDTD is false.
+ *
+ * @param supportDTD The value of the property javax.xml.stream.supportDTD.
+ * @return true if DTD is skipped, false otherwise.
+ * @throws java.io.IOException if i/o error occurs
+ */
+ @Override
+ public boolean skipDTD(boolean supportDTD) throws IOException {
+ if (!supportDTD) {
+ fStringBuffer.clear();
+ if (!fEntityScanner.scanData("]", fStringBuffer)) {
+ fEntityScanner.fCurrentEntity.position--;
+ }
+
+ return true;
+ }
+ return false;
+ }
+
//
// XMLComponent methods
//
diff --git a/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java b/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java
index c2d58bd..27689e7 100644
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
*/
/*
@@ -1096,11 +1096,14 @@ public class XMLDocumentScannerImpl
again = false;
switch (fScannerState) {
case SCANNER_STATE_DTD_INTERNAL_DECLS: {
+ boolean moreToScan = false;
+ if (!fDTDScanner.skipDTD(fSupportDTD)) {
// REVISIT: Should there be a feature for
// the "complete" parameter?
boolean completeDTD = true;
- boolean moreToScan = fDTDScanner.scanDTDInternalSubset(completeDTD, fStandalone, fHasExternalDTD && fLoadExternalDTD);
+ moreToScan = fDTDScanner.scanDTDInternalSubset(completeDTD, fStandalone, fHasExternalDTD && fLoadExternalDTD);
+ }
Entity entity = fEntityScanner.getCurrentEntity();
if(entity instanceof Entity.ScannedEntity){
fEndPos=((Entity.ScannedEntity)entity).position;
diff --git a/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java b/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java
index 49dea56..189152d 100644
--- a/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java
+++ b/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java
@@ -96,5 +96,14 @@ public interface XMLDTDScanner
public boolean scanDTDExternalSubset(boolean complete)
throws IOException, XNIException;
+ /**
+ * Skip the DTD if javax.xml.stream.supportDTD is false.
+ * @param supportDTD The value of the property javax.xml.stream.supportDTD.
+ * @return true if DTD is skipped, false otherwise.
+ * @throws java.io.IOException if i/o error occurs
+ */
+ public boolean skipDTD(boolean supportDTD)
+ throws IOException;
+
public void setLimitAnalyzer(XMLLimitAnalyzer limitAnalyzer);
} // interface XMLDTDScanner