Mercurial > hg > openjdk > bsd-port > jaxp
changeset 1307:ab72c17cd492
8130078: Document better processing
Reviewed-by: dfuchs, lancea, ahgross
author | aefimov |
---|---|
date | Wed, 15 Jul 2015 18:40:53 +0300 |
parents | fe931343ad6a |
children | e95e9042c8f3 |
files | src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java |
diffstat | 3 files changed, 34 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java Sun Jul 12 22:35:12 2015 +0300 +++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java Wed Jul 15 18:40:53 2015 +0300 @@ -380,6 +380,26 @@ } // 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 //
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java Sun Jul 12 22:35:12 2015 +0300 +++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java Wed Jul 15 18:40:53 2015 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. */ /* @@ -1096,11 +1096,14 @@ 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;
--- a/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java Sun Jul 12 22:35:12 2015 +0300 +++ b/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java Wed Jul 15 18:40:53 2015 +0300 @@ -96,5 +96,14 @@ 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