src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java

Print this page




1138                             }
1139                             break;
1140                         }
1141                         case SCANNER_STATE_DTD_EXTERNAL: {
1142                             /**
1143                             fDTDDescription.setValues(fDoctypePublicId, fDoctypeSystemId, null, null);
1144                             fDTDDescription.setRootName(fDoctypeName);
1145                             XMLInputSource xmlInputSource =
1146                                 fEntityManager.resolveEntity(fDTDDescription);
1147                             fDTDScanner.setInputSource(xmlInputSource);
1148                             setScannerState(SCANNER_STATE_DTD_EXTERNAL_DECLS);
1149                             again = true;
1150                             break;
1151                              */
1152 
1153                             resourceIdentifier.setValues(fDoctypePublicId, fDoctypeSystemId, null, null);
1154                             XMLInputSource xmlInputSource = null ;
1155                             StaxXMLInputSource staxInputSource =  fEntityManager.resolveEntityAsPerStax(resourceIdentifier);
1156 
1157                             // Check access permission. If the source is resolved by a resolver, the check is skipped.
1158                             if (!staxInputSource.hasResolver()) {
1159                                 String accessError = checkAccess(fDoctypeSystemId, fAccessExternalDTD);
1160                                 if (accessError != null) {
1161                                     reportFatalError("AccessExternalDTD", new Object[]{ SecuritySupport.sanitizePath(fDoctypeSystemId), accessError });
1162                                 }
1163                             }
1164                             xmlInputSource = staxInputSource.getXMLInputSource();
1165                             fDTDScanner.setInputSource(xmlInputSource);
1166                             if (fEntityScanner.fCurrentEntity != null) {
1167                                 setScannerState(SCANNER_STATE_DTD_EXTERNAL_DECLS);
1168                             } else {
1169                                 setScannerState(SCANNER_STATE_PROLOG);
1170                             }
1171                             again = true;
1172                             break;
1173                         }
1174                         case SCANNER_STATE_DTD_EXTERNAL_DECLS: {
1175                             // REVISIT: Should there be a feature for
1176                             //          the "complete" parameter?
1177                             boolean completeDTD = true;
1178                             boolean moreToScan = fDTDScanner.scanDTDExternalSubset(completeDTD);




1138                             }
1139                             break;
1140                         }
1141                         case SCANNER_STATE_DTD_EXTERNAL: {
1142                             /**
1143                             fDTDDescription.setValues(fDoctypePublicId, fDoctypeSystemId, null, null);
1144                             fDTDDescription.setRootName(fDoctypeName);
1145                             XMLInputSource xmlInputSource =
1146                                 fEntityManager.resolveEntity(fDTDDescription);
1147                             fDTDScanner.setInputSource(xmlInputSource);
1148                             setScannerState(SCANNER_STATE_DTD_EXTERNAL_DECLS);
1149                             again = true;
1150                             break;
1151                              */
1152 
1153                             resourceIdentifier.setValues(fDoctypePublicId, fDoctypeSystemId, null, null);
1154                             XMLInputSource xmlInputSource = null ;
1155                             StaxXMLInputSource staxInputSource =  fEntityManager.resolveEntityAsPerStax(resourceIdentifier);
1156 
1157                             // Check access permission. If the source is resolved by a resolver, the check is skipped.
1158                             if (!staxInputSource.isCreatedByResolver()) {
1159                                 String accessError = checkAccess(fDoctypeSystemId, fAccessExternalDTD);
1160                                 if (accessError != null) {
1161                                     reportFatalError("AccessExternalDTD", new Object[]{ SecuritySupport.sanitizePath(fDoctypeSystemId), accessError });
1162                                 }
1163                             }
1164                             xmlInputSource = staxInputSource.getXMLInputSource();
1165                             fDTDScanner.setInputSource(xmlInputSource);
1166                             if (fEntityScanner.fCurrentEntity != null) {
1167                                 setScannerState(SCANNER_STATE_DTD_EXTERNAL_DECLS);
1168                             } else {
1169                                 setScannerState(SCANNER_STATE_PROLOG);
1170                             }
1171                             again = true;
1172                             break;
1173                         }
1174                         case SCANNER_STATE_DTD_EXTERNAL_DECLS: {
1175                             // REVISIT: Should there be a feature for
1176                             //          the "complete" parameter?
1177                             boolean completeDTD = true;
1178                             boolean moreToScan = fDTDScanner.scanDTDExternalSubset(completeDTD);