public void init() { _qNames = new Hashtable(512); _namespaces = new Hashtable(); _instructionClasses = new Hashtable(); _instructionAttrs = new Hashtable(); _variableScope = new Hashtable(); _template = null; _errors = new Vector(); _warnings = new Vector(); _symbolTable = new SymbolTable(); _xpathParser = new XPathParser(this); _currentStylesheet = null; _output = null; _root = null; _rootNamespaceDef = false; _currentImportPrecedence = 1; initStdClasses(); initInstructionAttrs(); initExtClasses(); initSymbolTable(); _useAttributeSets = getQName(XSLT_URI, XSL, "use-attribute-sets"); _excludeResultPrefixes = getQName(XSLT_URI, XSL, "exclude-result-prefixes"); _extensionElementPrefixes = getQName(XSLT_URI, XSL, "extension-element-prefixes"); }
/** * Type check the contents of this element */ public Type typeCheck(SymbolTable stable) throws TypeCheckError { if (_ignore) return (Type.Void); // _mergeSet Point to any previous definition of this attribute set _mergeSet = stable.addAttributeSet(this); _method = AttributeSetPrefix + getXSLTC().nextAttributeSetSerial(); if (_useSets != null) _useSets.typeCheck(stable); typeCheckContents(stable); return Type.Void; }
/** * Parse the name of the <xsl:decimal-formatting/> element */ public void parseContents(Parser parser) { // Get the name of these decimal formatting symbols final String name = getAttribute("name"); if (name.length() > 0) { if (!XML11Char.isXML11ValidQName(name)){ ErrorMsg err = new ErrorMsg(ErrorMsg.INVALID_QNAME_ERR, name, this); parser.reportError(Constants.ERROR, err); } } _name = parser.getQNameIgnoreDefaultNs(name); if (_name == null) { _name = parser.getQNameIgnoreDefaultNs(EMPTYSTRING); } // Check if a set of symbols has already been registered under this name SymbolTable stable = parser.getSymbolTable(); if (stable.getDecimalFormatting(_name) != null) { reportWarning(this, parser, ErrorMsg.SYMBOLS_REDEF_ERR, _name.toString()); } else { stable.addDecimalFormatting(_name, this); } }
final Stylesheet sheet = stable.addStylesheet(_name, this); if (sheet != null) { stable.excludeURI(XSLT_URI); Template template = new Template(); template.parseSimplified(this, parser);
Variable var = parser.getSymbolTable().lookupVariable(_name); parser.getSymbolTable().addVariable(this);
Param param = parser.getSymbolTable().lookupParam(_name); parser.getSymbolTable().addParam(this);
private boolean resolveNamedTemplates(Template other, Parser parser) { if (other == null) return true; SymbolTable stable = parser.getSymbolTable(); final int us = this.getImportPrecedence(); final int them = other.getImportPrecedence(); if (us > them) { other.disable(); return true; } else if (us < them) { stable.addTemplate(other); this.disable(); return true; } else { return false; } }
public void parseContents(Parser parser) { sPrefix = getAttribute("stylesheet-prefix"); rPrefix = getAttribute("result-prefix"); parser.getSymbolTable().addPrefixAlias(sPrefix,rPrefix); }
getSymbolTable().addKey(_name, this);
_symbolTable.addPrimop("current", A_V); _symbolTable.addPrimop("last", I_V); _symbolTable.addPrimop("position", I_V); _symbolTable.addPrimop("true", B_V); _symbolTable.addPrimop("false", B_V); _symbolTable.addPrimop("not", B_B); _symbolTable.addPrimop("name", S_V); _symbolTable.addPrimop("name", S_A); _symbolTable.addPrimop("generate-id", S_V); _symbolTable.addPrimop("generate-id", S_A); _symbolTable.addPrimop("ceiling", R_R); _symbolTable.addPrimop("floor", R_R); _symbolTable.addPrimop("round", R_R); _symbolTable.addPrimop("contains", B_SS); _symbolTable.addPrimop("number", R_O); _symbolTable.addPrimop("number", R_V); _symbolTable.addPrimop("boolean", B_O); _symbolTable.addPrimop("string", S_O); _symbolTable.addPrimop("string", S_V); _symbolTable.addPrimop("translate", S_SSS); _symbolTable.addPrimop("string-length", I_V); _symbolTable.addPrimop("string-length", I_S); _symbolTable.addPrimop("starts-with", B_SS); _symbolTable.addPrimop("format-number", S_DS); _symbolTable.addPrimop("format-number", S_DSS); _symbolTable.addPrimop("unparsed-entity-uri", S_S); _symbolTable.addPrimop("key", D_SS); _symbolTable.addPrimop("key", D_SD); _symbolTable.addPrimop("id", D_S);
final Stylesheet sheet = stable.addStylesheet(_name, this); if (sheet != null) { stable.excludeURI(XSLT_URI); Template template = new Template(); template.parseSimplified(this, parser);
Variable var = parser.getSymbolTable().lookupVariable(_name); parser.getSymbolTable().addVariable(this);
Param param = parser.getSymbolTable().lookupParam(_name); parser.getSymbolTable().addParam(this);
Template other = parser.getSymbolTable().addTemplate(this); if (!resolveNamedTemplates(other, parser)) { ErrorMsg err =
public void parseContents(Parser parser) { sPrefix = getAttribute("stylesheet-prefix"); rPrefix = getAttribute("result-prefix"); parser.getSymbolTable().addPrefixAlias(sPrefix,rPrefix); }
getSymbolTable().addKey(_name, this);
_symbolTable.addPrimop("current", A_V); _symbolTable.addPrimop("last", I_V); _symbolTable.addPrimop("position", I_V); _symbolTable.addPrimop("true", B_V); _symbolTable.addPrimop("false", B_V); _symbolTable.addPrimop("not", B_B); _symbolTable.addPrimop("name", S_V); _symbolTable.addPrimop("name", S_A); _symbolTable.addPrimop("generate-id", S_V); _symbolTable.addPrimop("generate-id", S_A); _symbolTable.addPrimop("ceiling", R_R); _symbolTable.addPrimop("floor", R_R); _symbolTable.addPrimop("round", R_R); _symbolTable.addPrimop("contains", B_SS); _symbolTable.addPrimop("number", R_O); _symbolTable.addPrimop("number", R_V); _symbolTable.addPrimop("boolean", B_O); _symbolTable.addPrimop("string", S_O); _symbolTable.addPrimop("string", S_V); _symbolTable.addPrimop("translate", S_SSS); _symbolTable.addPrimop("string-length", I_V); _symbolTable.addPrimop("string-length", I_S); _symbolTable.addPrimop("starts-with", B_SS); _symbolTable.addPrimop("format-number", S_DS); _symbolTable.addPrimop("format-number", S_DSS); _symbolTable.addPrimop("unparsed-entity-uri", S_S); _symbolTable.addPrimop("key", D_SS); _symbolTable.addPrimop("key", D_SD); _symbolTable.addPrimop("id", D_S);
/** * Parse the name of the <xsl:decimal-formatting/> element */ public void parseContents(Parser parser) { // Get the name of these decimal formatting symbols final String name = getAttribute("name"); if (name.length() > 0) { if (!XML11Char.isXML11ValidQName(name)){ ErrorMsg err = new ErrorMsg(ErrorMsg.INVALID_QNAME_ERR, name, this); parser.reportError(Constants.ERROR, err); } } _name = parser.getQNameIgnoreDefaultNs(name); if (_name == null) { _name = parser.getQNameIgnoreDefaultNs(EMPTYSTRING); } // Check if a set of symbols has already been registered under this name SymbolTable stable = parser.getSymbolTable(); if (stable.getDecimalFormatting(_name) != null) { reportWarning(this, parser, ErrorMsg.SYMBOLS_REDEF_ERR, _name.toString()); } else { stable.addDecimalFormatting(_name, this); } }
final Stylesheet sheet = stable.addStylesheet(_name, this); if (sheet != null) { stable.excludeURI(XSLT_URI); Template template = new Template(); template.parseSimplified(this, parser);
Variable var = parser.getSymbolTable().lookupVariable(_name); parser.getSymbolTable().addVariable(this);