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);
|