if (fEntityScanner.skipString("PUBLIC")) { if (!fEntityScanner.skipSpaces()) { reportFatalError("SpaceRequiredAfterPUBLIC", null); if (!fEntityScanner.skipSpaces() && !optionalSystemId) { reportFatalError("SpaceRequiredBetweenPublicAndSystem", null); if (publicId != null || fEntityScanner.skipString("SYSTEM")) { if (publicId == null && !fEntityScanner.skipSpaces()) { reportFatalError("SpaceRequiredAfterSYSTEM", null); int quote = fEntityScanner.peekChar(); if (quote != '\'' && quote != '"') { if (publicId != null && optionalSystemId) { fEntityScanner.scanChar(); XMLString ident = fString; if (fEntityScanner.scanLiteral(quote, ident) != quote) { fStringBuffer.clear(); do { fStringBuffer.append(ident); int c = fEntityScanner.peekChar(); if (XMLChar.isMarkup(c) || c == ']') { fStringBuffer.append((char)fEntityScanner.scanChar()); reportFatalError("InvalidCharInSystemID", new Object[] { Integer.toHexString(c) }); fEntityScanner.scanChar();
if (!fEntityScanner.skipSpaces()) { if (fEntityScanner.skipString("?>")) { if(fNamespaces && fEntityScanner.peekChar() == ':') { fEntityScanner.scanChar(); XMLStringBuffer colonName = new XMLStringBuffer(target); colonName.append(':'); String str = fEntityScanner.scanName(); if (str != null) colonName.append(str); reportFatalError("ColonNotLegalWithNS", new Object[] {colonName.toString()}); fEntityScanner.skipSpaces(); } else { if (fEntityScanner.scanData("?>", fStringBuffer)) { do { int c = fEntityScanner.peekChar(); if (c != -1) { if (XMLChar.isHighSurrogate(c)) { reportFatalError("InvalidCharInPI", new Object[]{Integer.toHexString(c)}); fEntityScanner.scanChar(); } while (fEntityScanner.scanData("?>", fStringBuffer));
public void setScannerVersion(short version) { if(version == Constants.XML_VERSION_1_0) { if(fXML10EntityScanner == null) { fXML10EntityScanner = new XMLEntityScanner(); } fXML10EntityScanner.reset(fSymbolTable, this, fErrorReporter); fEntityScanner = fXML10EntityScanner; fEntityScanner.setCurrentEntity(fCurrentEntity); } else { if(fXML11EntityScanner == null) { fXML11EntityScanner = new XML11EntityScanner(); } fXML11EntityScanner.reset(fSymbolTable, this, fErrorReporter); fEntityScanner = fXML11EntityScanner; fEntityScanner.setCurrentEntity(fCurrentEntity); } } // setScannerVersion(short)
/** Returns the entity scanner. */ public XMLEntityScanner getEntityScanner() { if(fEntityScanner == null) { // default to 1.0 if(fXML10EntityScanner == null) { fXML10EntityScanner = new XMLEntityScanner(); } fXML10EntityScanner.reset(fSymbolTable, this, fErrorReporter); fEntityScanner = fXML10EntityScanner; } return fEntityScanner; } // getEntityScanner():XMLEntityScanner
/** * Scans the name of a pseudo attribute. The only legal names * in XML 1.0/1.1 documents are 'version', 'encoding' and 'standalone'. * * @return the name of the pseudo attribute or <code>null</code> * if a legal pseudo attribute name could not be scanned. */ private String scanPseudoAttributeName() throws IOException, XNIException { final int ch = fEntityScanner.peekChar(); switch (ch) { case 'v': if (fEntityScanner.skipString(fVersionSymbol)) { return fVersionSymbol; } break; case 'e': if (fEntityScanner.skipString(fEncodingSymbol)) { return fEncodingSymbol; } break; case 's': if (fEntityScanner.skipString(fStandaloneSymbol)) { return fStandaloneSymbol; } break; } return null; } // scanPseudoAttributeName()
int quote = fEntityScanner.scanChar(); if (quote != '\'' && quote != '"') { reportFatalError("OpenQuoteMissingInDecl", null); if (fEntityScanner.scanLiteral(quote, fString) != quote) { fStringBuffer.clear(); fStringBuffer2.clear(); fStringBuffer.append(fString); fStringBuffer2.append(fString); if (fEntityScanner.skipChar('&')) { if (fEntityScanner.skipChar('#')) { fStringBuffer2.append("&#"); scanCharReferenceValue(fStringBuffer, fStringBuffer2); fStringBuffer.append('&'); fStringBuffer2.append('&'); String eName = fEntityScanner.scanName(); if (eName == null) { reportFatalError("NameRequiredInReference", if (!fEntityScanner.skipChar(';')) { reportFatalError("SemicolonRequiredInReference", new Object[]{eName}); else if (fEntityScanner.skipChar('%')) { while (true) { fStringBuffer2.append('%'); String peName = fEntityScanner.scanName();
boolean sawPERef = false; fReportEntity = false; if (fEntityScanner.skipSpaces()) { if (!fEntityScanner.skipChar('%')) { isPEDecl = false; // <!ENTITY x "x"> else if (fEntityScanner.peekChar() == '%') { else if (scanningInternalSubset() || !fEntityScanner.skipChar('%')) { else if (fEntityScanner.skipSpaces()) { String peName = fEntityScanner.scanName(); if (peName == null) { reportFatalError("NameRequiredInPEReference", null); else if (!fEntityScanner.skipChar(';')) { reportFatalError("SemicolonRequiredInPEReference", new Object[]{peName}); fEntityScanner.skipSpaces(); if (!fEntityScanner.skipChar('%')) break; if (!isPEDecl) { isPEDecl = fEntityScanner.skipChar('%'); name = fEntityScanner.scanNCName(); } else {
name = fEntityScanner.scanNCName(); } else { name = fEntityScanner.scanName(); if(fNamespaces && fEntityScanner.peekChar() == ':') { fEntityScanner.scanChar(); XMLStringBuffer colonName = new XMLStringBuffer(name); colonName.append(':'); colonName.append(fEntityScanner.scanName()); reportFatalError("ColonNotLegalWithNS", new Object[] {colonName.toString()}); skipSeparator(true, !scanningInternalSubset()); String systemId = fStrings[0]; String publicId = fStrings[1]; String baseSystemId = fEntityScanner.getBaseSystemId(); if (!fEntityScanner.skipChar('>')) { reportFatalError("NotationDeclUnterminated", new Object[]{name});
while (fEntityScanner.scanData("--", text)) { int c = fEntityScanner.peekChar(); if (c != -1) { if (XMLChar.isHighSurrogate(c)) { reportFatalError("InvalidCharInComment", new Object[] { Integer.toHexString(c) }); fEntityScanner.scanChar(); if (!fEntityScanner.skipChar('>')) { reportFatalError("DashDashInComment", null);
fEntityScanner.skipDeclSpaces(); if (!fEntityScanner.skipChar('=')) { reportFatalError(scanningTextDecl ? "EqRequiredInTextDecl" : "EqRequiredInXMLDecl", new Object[]{name}); fEntityScanner.skipDeclSpaces(); int quote = fEntityScanner.peekChar(); if (quote != '\'' && quote != '"') { reportFatalError(scanningTextDecl ? "QuoteRequiredInTextDecl" : "QuoteRequiredInXMLDecl" , new Object[]{name}); fEntityScanner.scanChar(); int c = fEntityScanner.scanLiteral(quote, value); if (c != quote) { fStringBuffer2.clear(); if (c != -1) { if (c == '&' || c == '%' || c == '<' || c == ']') { fStringBuffer2.append((char)fEntityScanner.scanChar()); reportFatalError(key, new Object[] {Integer.toString(c, 16)}); fEntityScanner.scanChar(); c = fEntityScanner.scanLiteral(quote, value); } while (c != quote); fStringBuffer2.append(value); value.setValues(fStringBuffer2);
if (fEntityScanner.skipString("<?xml")) { fMarkUpDepth++; if (isValidNameChar(fEntityScanner.peekChar())) { fStringBuffer.clear(); fStringBuffer.append("xml"); if (fNamespaces) { while (isValidNCName(fEntityScanner.peekChar())) { fStringBuffer.append((char)fEntityScanner.scanChar()); while (isValidNameChar(fEntityScanner.peekChar())) { fStringBuffer.append((char)fEntityScanner.scanChar()); encoding = fStrings[1]; fEntityScanner.setXMLVersion(version); if (!fEntityScanner.fCurrentEntity.isEncodingExternallySpecified()) { fEntityScanner.setEncoding(encoding);
if (!fEntityScanner.skipString(fElementQName.rawname)) { reportFatalError("ETagRequired", new Object[]{fElementQName.rawname}); fEntityScanner.skipSpaces(); if (!fEntityScanner.skipChar('>')) { reportFatalError("ETagUnterminated", new Object[]{fElementQName.rawname});
boolean sawSpace = fEntityScanner.skipSpaces(); if (!lookForPERefs || !fEntityScanner.skipChar('%')) { return !spaceRequired || sawSpace || (depth != fPEDepth); String name = fEntityScanner.scanName(); if (name == null) { reportFatalError("NameRequiredInPEReference", null); else if (!fEntityScanner.skipChar(';')) { reportFatalError("SemicolonRequiredInPEReference", new Object[]{name}); fEntityScanner.skipSpaces(); if (!fEntityScanner.skipChar('%')) return true;
int c = fEntityScanner.scanContent(content); if (c == '\r') { fEntityScanner.scanChar(); fStringBuffer.clear(); fStringBuffer.append(fTempString); fStringBuffer.append((char)fEntityScanner.scanChar()); if (fEntityScanner.skipChar(']')) { fStringBuffer.append(']'); while (fEntityScanner.skipChar(']')) { fStringBuffer.append(']'); if (fEntityScanner.skipChar('>')) { reportFatalError("CDEndInContent", null);
String name = fEntityScanner.scanName(); if (name == null) { reportFatalError("MSG_ELEMENT_TYPE_REQUIRED_IN_ELEMENTDECL", if (fEntityScanner.skipString("EMPTY")) { contentModel = "EMPTY"; else if (fEntityScanner.skipString("ANY")) { contentModel = "ANY"; if (!fEntityScanner.skipChar('(')) { reportFatalError("MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN", new Object[]{name}); if (fEntityScanner.skipString("#PCDATA")) { scanMixed(name); skipSeparator(false, !scanningInternalSubset()); if (!fEntityScanner.skipChar('>')) { reportFatalError("ElementDeclUnterminated", new Object[]{name});
if (fEntityScanner.skipString("CDATA")) { type = "CDATA"; else if (fEntityScanner.skipString("IDREFS")) { type = "IDREFS"; else if (fEntityScanner.skipString("IDREF")) { type = "IDREF"; else if (fEntityScanner.skipString("ID")) { type = "ID"; else if (fEntityScanner.skipString("ENTITY")) { type = "ENTITY"; else if (fEntityScanner.skipString("ENTITIES")) { type = "ENTITIES"; else if (fEntityScanner.skipString("NMTOKENS")) { type = "NMTOKENS"; else if (fEntityScanner.skipString("NMTOKEN")) { type = "NMTOKEN"; else if (fEntityScanner.skipString("NOTATION")) { type = "NOTATION"; int c = fEntityScanner.scanChar(); if (c != '(') {
fEntityScanner.scanQName(fAttributeQName); String name = fEntityScanner.scanName(); fAttributeQName.setValues(null, name, name, null); fEntityScanner.skipSpaces(); if (!fEntityScanner.skipChar('=')) { reportFatalError("EqRequiredInAttribute", new Object[]{fCurrentElement.rawname,fAttributeQName.rawname}); fEntityScanner.skipSpaces();
XMLEntityScanner scanner = fEntityManager.getEntityScanner(); try { if (!scanner.skipString("<?xml")) { if (!scanner.skipDeclSpaces()) { fixupCurrentEntity(fEntityManager, fExpectedVersionString, 5); return Constants.XML_VERSION_1_0; if (!scanner.skipString("version")) { fixupCurrentEntity(fEntityManager, fExpectedVersionString, 6); return Constants.XML_VERSION_1_0; scanner.skipDeclSpaces(); if (scanner.peekChar() != '=') { fixupCurrentEntity(fEntityManager, fExpectedVersionString, 13); return Constants.XML_VERSION_1_0; scanner.scanChar(); scanner.skipDeclSpaces(); int quoteChar = scanner.scanChar(); fExpectedVersionString[14] = (char) quoteChar; for (int versionPos = 0; versionPos < XML11_VERSION.length; versionPos++) { fExpectedVersionString[15 + versionPos] = (char) scanner.scanChar(); fExpectedVersionString[18] = (char) scanner.scanChar(); fixupCurrentEntity(fEntityManager, fExpectedVersionString, 19); int matched = 0;
fEntityScanner.scanQName(fAttributeQName); fEntityScanner.skipSpaces(); if (!fEntityScanner.skipChar('=')) { reportFatalError("EqRequiredInAttribute", new Object[]{fCurrentElement.rawname,fAttributeQName.rawname}); fEntityScanner.skipSpaces();
/** * Scans the name of an element in a start or empty tag. * * @see #scanStartElement() */ protected void scanStartElementName () throws IOException, XNIException { // name if (fNamespaces) { fEntityScanner.scanQName(fElementQName); } else { String name = fEntityScanner.scanName(); fElementQName.setValues(null, name, name, null); } // Must skip spaces here because the DTD scanner // would consume them at the end of the external subset. fSawSpace = fEntityScanner.skipSpaces(); } // scanStartElementName()