/** Parses the DTD file specified by the given input source. */ public void parse(XMLInputSource source) throws XNIException, IOException { fScanner.reset(this); fEntityManager.reset(this); fErrorReporter.reset(this); fScanner.setInputSource(source); try { fScanner.scanDTDExternalSubset(true); } catch (EOFException e) { // ignore // NOTE: This is to work around a problem in the Xerces // DTD scanner implementation when used standalone. -Ac } } // parse(XMLInputSource)
/** * Sets the dTD content model handler. * * @param handler * the new dTD content model handler {@inheritDoc} * @see org.apache.xerces.xni.parser.XMLParserConfiguration#setDTDContentModelHandler(org.apache.xerces.xni.XMLDTDContentModelHandler) */ @Override public void setDTDContentModelHandler(final XMLDTDContentModelHandler handler) { this.xmlDTDContentModelHandler = handler; this.scanner.setDTDContentModelHandler(this.xmlDTDContentModelHandler); }
/** * Sets the dTD handler. * * @param handler * the new dTD handler {@inheritDoc} * @see org.apache.xerces.xni.parser.XMLParserConfiguration#setDTDHandler(org.apache.xerces.xni.XMLDTDHandler) */ @Override public void setDTDHandler(final XMLDTDHandler handler) { this.xmlDTDHandler = handler; this.scanner.setDTDHandler(this.xmlDTDHandler); }
if (!skipSeparator(true, !scanningInternalSubset())) { reportFatalError("MSG_SPACE_REQUIRED_AFTER_NOTATION_IN_NOTATIONTYPE", new Object[]{elName, atName}); reportFatalError("MSG_OPEN_PAREN_REQUIRED_IN_NOTATIONTYPE", new Object[]{elName, atName}); skipSeparator(false, !scanningInternalSubset()); String aName = fEntityScanner.scanName(); if (aName == null) { reportFatalError("MSG_NAME_REQUIRED_IN_NOTATIONTYPE", new Object[]{elName, atName}); c = skipInvalidEnumerationValue(); if (c == '|') { continue; ensureEnumerationSize(fEnumerationCount + 1); fEnumeration[fEnumerationCount++] = aName; skipSeparator(false, !scanningInternalSubset()); c = fEntityScanner.scanChar(); } while (c == '|'); if (c != ')') { reportFatalError("NotationTypeUnterminated", new Object[]{elName, atName}); reportFatalError("AttTypeRequiredInAttDef", new Object[]{elName, atName}); skipSeparator(false, !scanningInternalSubset());
setProperty(DTD_SCANNER, fCurrentDTDScanner); fDTDScanner.setDTDHandler(fDTDHandler); if (fDTDHandler != null) { fDTDHandler.setDTDSource(fDTDScanner); fDTDScanner.setDTDContentModelHandler(fDTDContentModelHandler); if (fDTDContentModelHandler != null) { fDTDContentModelHandler.setDTDContentModelSource(fDTDScanner);
null, new StringReader(buffer.toString()), null); fEntityManager.startDocumentEntity(is); fDTDScanner.scanDTDInternalSubset(true, false, systemId != null); XMLDTDDescription desc = new XMLDTDDescription(publicId, systemId, baseSystemId, null, rootName); XMLInputSource source = fEntityManager.resolveEntity(desc); fDTDScanner.setInputSource(source); fDTDScanner.scanDTDExternalSubset(true);
fDTDScanner.setInputSource(source); fDTDScanner.scanDTDExternalSubset(true); } catch (EOFException e) {
/** Create a DTD scanner. */ protected XMLDTDScanner createDTDScanner() { return new XMLDTDScannerImpl(); } // createDTDScanner():XMLDTDScanner
/** * Reset all XML 1.0 components before parsing */ protected final void resetXML10() throws XNIException { // Reset XML 1.0 components fNamespaceScanner.reset(this); fDTDScanner.reset(this); } // resetXML10()
/** * reset * * @param componentManager */ public void reset(XMLComponentManager componentManager) throws XMLConfigurationException { super.reset(componentManager); init(); } // reset(XMLComponentManager)
private int skipInvalidEnumerationValue() throws IOException { int c; do { c = fEntityScanner.scanChar(); } while (c != '|' && c != ')'); ensureEnumerationSize(fEnumerationCount + 1); fEnumeration[fEnumerationCount++] = XMLSymbols.EMPTY_STRING; return c; }
/** * Returns the state of a feature. * * @param featureId The feature identifier. * * @throws XMLConfigurationException Thrown on configuration error. */ public boolean getFeature(String featureId) throws XMLConfigurationException { if (featureId.equals(VALIDATION)) { return fValidation; } else if (featureId.equals(WARN_ON_DUPLICATE_ATTDEF)) { return fWarnDuplicateAttdef; } else if (featureId.equals(WARN_ON_UNDECLARED_ELEMDEF)) { return fWarnOnUndeclaredElemdef; } else if (featureId.equals(NOTIFY_CHAR_REFS)) { return fDTDScanner.getFeature(featureId); } else if (featureId.equals(STANDARD_URI_CONFORMANT_FEATURE)) { return fStrictURI; } else if (featureId.equals(BALANCE_SYNTAX_TREES)) { return fBalanceSyntaxTrees; } throw new XMLConfigurationException(XMLConfigurationException.NOT_RECOGNIZED, featureId); } //getFeature(String): boolean
fScanner.setDTDHandler(this); fScanner.setDTDContentModelHandler(this);
/** Create a DTD scanner. */ protected XMLDTDScanner createDTDScanner() { return new XMLDTDScannerImpl(); } // createDTDScanner():XMLDTDScanner
protected void reset() { super.reset(); fDTDScanner.reset(); fEntityManager.reset(); fErrorReporter.setDocumentLocator(fEntityManager.getEntityScanner()); }
public void reset() { super.reset(); init(); }
/** * Parses the. * * @param source * the source * @throws XNIException * the xNI exception * @throws IOException * Signals that an I/O exception has occurred. {@inheritDoc} * @see org.apache.xerces.xni.parser.XMLParserConfiguration#parse(org.apache.xerces.xni.parser.XMLInputSource) */ @Override public void parse(final XMLInputSource source) throws XNIException, IOException { this.scanner.reset(this); this.entityManager.reset(this); this.errorReporter.reset(this); this.scanner.setInputSource(source); try { this.scanner.scanDTDExternalSubset(true); } catch (final EOFException e) { } }
XMLDTDLoader(SymbolTable symbolTable, XMLGrammarPool grammarPool, XMLErrorReporter errorReporter, XMLEntityResolver entityResolver) { fSymbolTable = symbolTable; fGrammarPool = grammarPool; if(errorReporter == null) { errorReporter = new XMLErrorReporter(); errorReporter.setProperty(ERROR_HANDLER, new DefaultErrorHandler()); } fErrorReporter = errorReporter; // Add XML message formatter if there isn't one. if (fErrorReporter.getMessageFormatter(XMLMessageFormatter.XML_DOMAIN) == null) { XMLMessageFormatter xmft = new XMLMessageFormatter(); fErrorReporter.putMessageFormatter(XMLMessageFormatter.XML_DOMAIN, xmft); fErrorReporter.putMessageFormatter(XMLMessageFormatter.XMLNS_DOMAIN, xmft); } fEntityResolver = entityResolver; if(fEntityResolver instanceof XMLEntityManager) { fEntityManager = (XMLEntityManager)fEntityResolver; } else { fEntityManager = new XMLEntityManager(); } fEntityManager.setProperty(Constants.XERCES_PROPERTY_PREFIX + Constants.ERROR_REPORTER_PROPERTY, errorReporter); fDTDScanner = createDTDScanner(fSymbolTable, fErrorReporter, fEntityManager); fDTDScanner.setDTDHandler(this); fDTDScanner.setDTDContentModelHandler(this); reset(); } // init(SymbolTable, XMLGrammarPool, XMLErrorReporter, XMLEntityResolver)
protected XMLDTDScannerImpl createDTDScanner(SymbolTable symbolTable, XMLErrorReporter errorReporter, XMLEntityManager entityManager) { return new XMLDTDScannerImpl(symbolTable, errorReporter, entityManager); } // createDTDScanner(SymbolTable, XMLErrorReporter, XMLEntityManager) : XMLDTDScannerImpl
addComponent((XMLComponent) fNamespaceScanner); fDTDScanner = new XMLDTDScannerImpl(); fProperties.put(DTD_SCANNER, fDTDScanner); addComponent((XMLComponent) fDTDScanner);