You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by dl...@apache.org on 2002/06/04 21:52:39 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/processor ProcessorResultDocument.java ProcessorFunction.java ProcessorFuncResult.java XSLTSchema.java ProcessorOutputElem.java
dleslie 2002/06/04 12:52:38
Modified: java/src/org/apache/xalan/processor Tag: Xalan3
XSLTSchema.java ProcessorOutputElem.java
Added: java/src/org/apache/xalan/processor Tag: Xalan3
ProcessorResultDocument.java ProcessorFunction.java
ProcessorFuncResult.java
Log:
First version for Xalan3 branch!
Revision Changes Path
No revision
No revision
1.20.4.1 +280 -181 xml-xalan/java/src/org/apache/xalan/processor/XSLTSchema.java
Index: XSLTSchema.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/XSLTSchema.java,v
retrieving revision 1.20
retrieving revision 1.20.4.1
diff -u -r1.20 -r1.20.4.1
--- XSLTSchema.java 11 May 2001 23:12:05 -0000 1.20
+++ XSLTSchema.java 4 Jun 2002 19:52:38 -0000 1.20.4.1
@@ -86,6 +86,9 @@
XSLTAttributeDef hrefAttr = new XSLTAttributeDef(null, "href",
XSLTAttributeDef.T_URL, true);
+ XSLTAttributeDef hrefAttrOpt = new XSLTAttributeDef(null, "href",
+ XSLTAttributeDef.T_URL, false);
+
XSLTAttributeDef elementsAttr = new XSLTAttributeDef(null, "elements",
XSLTAttributeDef.T_SIMPLEPATTERNLIST,
true);
@@ -247,6 +250,20 @@
XSLTAttributeDef xslVersionAttr =
new XSLTAttributeDef(Constants.S_XSLNAMESPACEURL, "version",
XSLTAttributeDef.T_NMTOKEN, false);
+ //dml for result-document
+ XSLTAttributeDef resultDocFormatAttr =
+ new XSLTAttributeDef(null, "format",
+ XSLTAttributeDef.T_QNAME, false);
+ // dml for output
+ XSLTAttributeDef includeContentTypeAttr = new XSLTAttributeDef(null,
+ "include-content-type",
+ XSLTAttributeDef.T_YESNO,
+ false);
+ XSLTAttributeDef escapeUriAttributesAttr = new XSLTAttributeDef(null,
+ "excape-uri-asttributes",
+ XSLTAttributeDef.T_YESNO,
+ false);
+
XSLTElementDef charData = new XSLTElementDef(this, null, "text()",
null /*alias */, null /* elements */, null, /* attributes */
new ProcessorCharacters(),
@@ -267,9 +284,12 @@
XSLTAttributeDef xslResultAttr =
new XSLTAttributeDef(Constants.S_XSLNAMESPACEURL, "*",
XSLTAttributeDef.T_CDATA, false);
- XSLTElementDef[] templateElements = new XSLTElementDef[21];
- XSLTElementDef[] templateElementsAndParams = new XSLTElementDef[22];
- XSLTElementDef[] templateElementsAndSort = new XSLTElementDef[22];
+ XSLTElementDef[] templateElements = new XSLTElementDef[24];
+ XSLTElementDef[] templateElementsAndParams = new XSLTElementDef[25];
+ XSLTElementDef[] templateElementsAndSort = new XSLTElementDef[25];
+ //exslt
+ XSLTElementDef[] exsltFunctionElements = new XSLTElementDef[25];// although should exclude some template elements.
+
XSLTElementDef[] charTemplateElements = new XSLTElementDef[15];
XSLTElementDef resultElement = new XSLTElementDef(this, null, "*",
null /*alias */,
@@ -282,7 +302,7 @@
xslVersionAttr,
xslResultAttr,
resultAttr },
- new ProcessorLRE(),
+ new ProcessorLRE(),
ElemLiteralResult.class /* class object */, 20, true);
XSLTElementDef unknownElement =
new XSLTElementDef(this, "*", "unknown", null /*alias */,
@@ -293,14 +313,14 @@
xslVersionAttr,
xslResultAttr,
resultAttr },
- new ProcessorUnknown(),
- ElemUnknown.class /* class object */, 20, true);
+ new ProcessorUnknown(),
+ ElemUnknown.class /* class object */, 20, true);
XSLTElementDef xslValueOf = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL, "value-of",
null /*alias */, null /* elements */,
new XSLTAttributeDef[]{ selectAttrRequired,
disableOutputEscapingAttr },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemValueOf.class /* class object */, 20, true);
XSLTElementDef xslCopyOf = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL, "copy-of",
@@ -320,7 +340,7 @@
letterValueAttr,
groupingSeparatorAVT,
groupingSizeAttr },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemNumber.class /* class object */, 20, true);
// <!-- xsl:sort cannot occur after any other elements or
@@ -335,7 +355,7 @@
dataTypeAttr,
orderAttr,
caseOrderAttr },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemSort.class/* class object */, 19, true );
XSLTElementDef xslWithParam = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL,
@@ -343,7 +363,7 @@
templateElements /* elements */, // %template;>
new XSLTAttributeDef[]{ nameAttrRequired,
selectAttrOpt }, new ProcessorTemplateElem(),
- ElemWithParam.class /* class object */);
+ ElemWithParam.class /* class object */, 19, true);
XSLTElementDef xslApplyTemplates = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL,
"apply-templates", null /*alias */,
@@ -351,7 +371,7 @@
xslWithParam } /* elements */, new XSLTAttributeDef[]{
selectAttrDefNode,
modeAttr },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemApplyTemplates.class /* class object */, 20, true);
XSLTElementDef xslApplyImports =
new XSLTElementDef(this, Constants.S_XSLNAMESPACEURL, "apply-imports",
@@ -364,7 +384,7 @@
null /*alias */, templateElementsAndSort, // (#PCDATA %instructions; %result-elements; | xsl:sort)*
new XSLTAttributeDef[]{ selectAttrRequired,
spaceAttr },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemForEach.class /* class object */, true, false, true, 20, true);
XSLTElementDef xslIf = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL,
@@ -381,7 +401,7 @@
testAttrRequired,
spaceAttr }, new ProcessorTemplateElem(),
ElemWhen.class /* class object */,
- false, true, 1, true);
+ false, true, 1, true);
XSLTElementDef xslOtherwise = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL, "otherwise",
null /*alias */,
@@ -389,13 +409,13 @@
new XSLTAttributeDef[]{ spaceAttr },
new ProcessorTemplateElem(),
ElemOtherwise.class /* class object */,
- false, false, 2, false);
+ false, false, 2, false);
XSLTElementDef xslChoose = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL, "choose",
null /*alias */,
new XSLTElementDef[]{ xslWhen,
xslOtherwise } /* elements */,
- new XSLTAttributeDef[]{ spaceAttr },
+ new XSLTAttributeDef[]{ spaceAttr },
new ProcessorTemplateElem(),
ElemChoose.class /* class object */, true, false, true, 20, true);
XSLTElementDef xslAttribute = new XSLTElementDef(this,
@@ -405,7 +425,7 @@
new XSLTAttributeDef[]{ nameAVTRequired,
namespaceAVTOpt,
spaceAttr },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemAttribute.class /* class object */, 20, true);
XSLTElementDef xslCallTemplate =
new XSLTElementDef(this, Constants.S_XSLNAMESPACEURL, "call-template",
@@ -420,7 +440,7 @@
templateElements /* elements */, // %template;>
new XSLTAttributeDef[]{ nameAttrRequired,
selectAttrOpt },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemVariable.class /* class object */, 20, true);
XSLTElementDef xslParam = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL, "param",
@@ -428,7 +448,7 @@
templateElements /* elements */, // %template;>
new XSLTAttributeDef[]{ nameAttrRequired,
selectAttrOpt },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemParam.class /* class object */, 19, true);
XSLTElementDef xslText =
new XSLTElementDef(this, Constants.S_XSLNAMESPACEURL, "text",
@@ -444,7 +464,7 @@
new XSLTAttributeDef[]{
nameAVTRequired,
spaceAttr },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemPI.class /* class object */, 20, true);
XSLTElementDef xslElement = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL, "element",
@@ -454,7 +474,7 @@
namespaceAVTOpt,
useAttributeSetsAttr,
spaceAttr },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemElement.class /* class object */, 20, true);
XSLTElementDef xslComment = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL, "comment",
@@ -469,7 +489,7 @@
new XSLTAttributeDef[]{
spaceAttr,
useAttributeSetsAttr },
- new ProcessorTemplateElem(),
+ new ProcessorTemplateElem(),
ElemCopy.class /* class object */, 20, true);
XSLTElementDef xslMessage = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL, "message",
@@ -485,8 +505,67 @@
new XSLTAttributeDef[]{ spaceAttr },
new ProcessorTemplateElem(),
ElemFallback.class /* class object */, 20, true);
+ //exslt
+ XSLTElementDef exsltFunction =
+ new XSLTElementDef(this,
+ Constants.S_EXSLT_FUNCTIONS_URL,
+ "function",
+ null /*alias */,
+ exsltFunctionElements /* elements */,
+ new XSLTAttributeDef[]{ nameAttrRequired },
+ new ProcessorExsltFunction(),
+ ElemExsltFunction.class /* class object */);
+ XSLTElementDef exsltResult =
+ new XSLTElementDef(this,
+ Constants.S_EXSLT_FUNCTIONS_URL,
+ "result",
+ null /*alias */,
+ templateElements /* elements */,
+ new XSLTAttributeDef[]{ selectAttrOpt },
+ new ProcessorExsltFuncResult(),
+ ElemExsltFuncResult.class /* class object */);
+
+ //XSLT 2.0
+ XSLTElementDef xslResult = new XSLTElementDef(this,
+ Constants.S_XSLNAMESPACEURL,
+ "result",
+ null /*alias */,
+ templateElements /* elements */,
+ new XSLTAttributeDef[]{ selectAttrOpt },
+ new ProcessorFuncResult(),
+ ElemFuncResult.class /* class object */);
+ XSLTElementDef[] xslFunctionElements = new XSLTElementDef[]
+ {xslParam, xslVariable,
+ xslMessage, xslComment,
+ xslResult};
+ XSLTElementDef xslFunction = new XSLTElementDef(this,
+ Constants.S_XSLNAMESPACEURL,
+ "function",
+ null,
+ xslFunctionElements,
+ new XSLTAttributeDef[]{ nameAttrRequired },
+ new ProcessorFunction(),
+ ElemFunction.class /* class object */);
+
+ XSLTElementDef xslPrincipalResultDocument =
+ new XSLTElementDef(this,
+ Constants.S_XSLNAMESPACEURL, "principal-result-document",
+ null /*alias */,
+ templateElements,
+ new XSLTAttributeDef[]{resultDocFormatAttr, hrefAttrOpt},
+ new ProcessorResultDocument(),
+ ElemPrincipalResultDocument.class);
+
+ XSLTElementDef xslResultDocument =
+ new XSLTElementDef(this,
+ Constants.S_XSLNAMESPACEURL, "result-document",
+ null /*alias */,
+ templateElements,
+ new XSLTAttributeDef[]{resultDocFormatAttr, hrefAttr},
+ new ProcessorResultDocument(),
+ ElemResultDocument.class);
+
int i = 0;
-
templateElements[i++] = charData; // #PCDATA
// char-instructions
@@ -512,22 +591,22 @@
templateElements[i++] = xslAttribute;
templateElements[i++] = resultElement;
templateElements[i++] = unknownElement;
+ templateElements[i++] = xslResult;
+ templateElements[i++] = exsltResult;
+ templateElements[i++] = xslResultDocument; // May NOT appear in xslFunction or exsltFunction.
int k;
for (k = 0; k < i; k++)
{
templateElementsAndParams[k] = templateElements[k];
- }
-
- templateElementsAndParams[k] = xslParam;
-
- for (k = 0; k < i; k++)
- {
templateElementsAndSort[k] = templateElements[k];
+ exsltFunctionElements[k] = templateElements[k];
}
-
+ templateElementsAndParams[k] = xslParam;
templateElementsAndSort[k] = xslSort;
+ exsltFunctionElements[k] = xslParam;
+
i = 0;
charTemplateElements[i++] = charData; // #PCDATA
@@ -553,164 +632,184 @@
new XSLTAttributeDef[]{ hrefAttr }, // EMPTY
new ProcessorImport(),
null /* class object */,
- 1, true);
+ 1, true);
XSLTElementDef includeDef = new XSLTElementDef(this,
Constants.S_XSLNAMESPACEURL, "include",
null /*alias */, null /* elements */, // EMPTY
new XSLTAttributeDef[]{ hrefAttr },
new ProcessorInclude(),
null /* class object */,
- 20, true);
- XSLTElementDef[] topLevelElements = new XSLTElementDef[]{ includeDef,
- importDef,
- // resultElement,
- whiteSpaceOnly,
- unknownElement,
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "strip-space",
- null /*alias */,
- null /* elements */,
- new XSLTAttributeDef[]{
- elementsAttr },
- new ProcessorStripSpace(),
- null /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "preserve-space",
- null /*alias */,
- null /* elements */,
- new XSLTAttributeDef[]{
- elementsAttr },
- new ProcessorPreserveSpace(),
- null /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "output",
- null /*alias */,
- null /* elements */,
- new XSLTAttributeDef[]{
- methodAttr,
- versionAttr,
- encodingAttr,
- omitXmlDeclarationAttr,
- standaloneAttr,
- doctypePublicAttr,
- doctypeSystemAttr,
- cdataSectionElementsAttr,
- indentAttr,
- mediaTypeAttr,
- XSLTAttributeDef.m_foreignAttr },
- new ProcessorOutputElem(), null /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "key",
- null /*alias */,
- null /* elements */, // EMPTY
- new XSLTAttributeDef[]{ nameAttrRequired,
- matchAttrRequired,
- useAttr },
- new ProcessorKey(), null /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "decimal-format",
- null /*alias */,
- null /* elements */, // EMPTY
- new XSLTAttributeDef[]{
- nameAttrOpt,
- decimalSeparatorAttr,
- groupingSeparatorAttr,
- infinityAttr,
- minusSignAttr,
- NaNAttr,
- percentAttr,
- perMilleAttr,
- zeroDigitAttr,
- digitAttr,
- patternSeparatorAttr },
- new ProcessorDecimalFormat(),
- null /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "attribute-set",
- null /*alias */,
- new XSLTElementDef[]{
- xslAttribute } /* elements */,
- new XSLTAttributeDef[]{
- nameAttrRequired,
- useAttributeSetsAttr }, new ProcessorAttributeSet(),
- null /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "variable",
- null /*alias */,
- templateElements /* elements */,
- new XSLTAttributeDef[]{
- nameAttrRequired,
- selectAttrOpt }, new ProcessorGlobalVariableDecl(),
- ElemVariable.class /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "param",
- null /*alias */,
- templateElements /* elements */,
- new XSLTAttributeDef[]{
- nameAttrRequired,
- selectAttrOpt }, new ProcessorGlobalParamDecl(),
- ElemParam.class /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "template",
- null /*alias */,
- templateElementsAndParams /* elements */,
- new XSLTAttributeDef[]{
- matchAttrOpt,
- nameAttrOpt,
- priorityAttr,
- modeAttr,
- spaceAttr }, new ProcessorTemplate(), ElemTemplate.class /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_XSLNAMESPACEURL,
- "namespace-alias",
- null /*alias */,
- null /* elements */, // EMPTY
- new XSLTAttributeDef[]{ stylesheetPrefixAttr,
- resultPrefixAttr },
- new ProcessorNamespaceAlias(), null /* class object */, 20, true),
- new XSLTElementDef(
- this,
- Constants.S_BUILTIN_EXTENSIONS_URL,
- "component",
- null /*alias */,
- new XSLTElementDef[]{
- new XSLTElementDef(
- this,
- Constants.S_BUILTIN_EXTENSIONS_URL,
- "script",
- null /*alias */,
- new XSLTElementDef[]{ charData } /* elements */,
- new XSLTAttributeDef[]{
- new XSLTAttributeDef(
- null,
- "lang",
- XSLTAttributeDef.T_NMTOKEN,
- true),
- new XSLTAttributeDef(null, "src", XSLTAttributeDef.T_URL, false) },
- new ProcessorLRE(),
- ElemExtensionScript.class /* class object */, 20, true) }, // EMPTY
- new XSLTAttributeDef[]{ new XSLTAttributeDef(null, "prefix", XSLTAttributeDef.T_NMTOKEN, true),
- new XSLTAttributeDef(null, "elements", XSLTAttributeDef.T_STRINGLIST, false),
- new XSLTAttributeDef(null, "functions", XSLTAttributeDef.T_STRINGLIST, false) }, new ProcessorLRE(), ElemExtensionDecl.class /* class object */) };
+ 20, true);
+
+ XSLTElementDef[] topLevelElements = new XSLTElementDef[]
+ {includeDef,
+ importDef,
+ // resultElement,
+ whiteSpaceOnly,
+ unknownElement,
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "strip-space",
+ null /*alias */,
+ null /* elements */,
+ new XSLTAttributeDef[]{
+ elementsAttr },
+ new ProcessorStripSpace(),
+ null /* class object */, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "preserve-space",
+ null /*alias */,
+ null /* elements */,
+ new XSLTAttributeDef[]{
+ elementsAttr },
+ new ProcessorPreserveSpace(),
+ null /* class object */, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "output",
+ null /*alias */,
+ null /* elements */,
+ new XSLTAttributeDef[]{
+ nameAttrOpt /*2.0-dml */,
+ methodAttr,
+ versionAttr,
+ encodingAttr,
+ omitXmlDeclarationAttr,
+ standaloneAttr,
+ doctypePublicAttr,
+ doctypeSystemAttr,
+ cdataSectionElementsAttr,
+ indentAttr,
+ mediaTypeAttr,
+ includeContentTypeAttr,
+ escapeUriAttributesAttr,
+ XSLTAttributeDef.m_foreignAttr },
+ new ProcessorOutputElem(), null /* class object */, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "key",
+ null /*alias */,
+ null /* elements */, // EMPTY
+ new XSLTAttributeDef[]{ nameAttrRequired,
+ matchAttrRequired,
+ useAttr },
+ new ProcessorKey(), null /* class object */, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "decimal-format",
+ null /*alias */,
+ null /* elements */, // EMPTY
+ new XSLTAttributeDef[]{
+ nameAttrOpt,
+ decimalSeparatorAttr,
+ groupingSeparatorAttr,
+ infinityAttr,
+ minusSignAttr,
+ NaNAttr,
+ percentAttr,
+ perMilleAttr,
+ zeroDigitAttr,
+ digitAttr,
+ patternSeparatorAttr },
+ new ProcessorDecimalFormat(),
+ null /* class object */, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "attribute-set",
+ null /*alias */,
+ new XSLTElementDef[]{
+ xslAttribute } /* elements */,
+ new XSLTAttributeDef[]{
+ nameAttrRequired,
+ useAttributeSetsAttr },
+ new ProcessorAttributeSet(),
+ null /* class object */, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "variable",
+ null /*alias */,
+ templateElements /* elements */,
+ new XSLTAttributeDef[]{
+ nameAttrRequired,
+ selectAttrOpt },
+ new ProcessorGlobalVariableDecl(),
+ ElemVariable.class /* class object */, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "param",
+ null /*alias */,
+ templateElements /* elements */,
+ new XSLTAttributeDef[]{
+ nameAttrRequired,
+ selectAttrOpt },
+ new ProcessorGlobalParamDecl(),
+ ElemParam.class /* class object */, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "template",
+ null /*alias */,
+ templateElementsAndParams /* elements */,
+ new XSLTAttributeDef[]{
+ matchAttrOpt,
+ nameAttrOpt,
+ priorityAttr,
+ modeAttr,
+ spaceAttr },
+ new ProcessorTemplate(), ElemTemplate.class /* class object */, true, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_XSLNAMESPACEURL,
+ "namespace-alias",
+ null /*alias */,
+ null /* elements */, // EMPTY
+ new XSLTAttributeDef[]{
+ stylesheetPrefixAttr,
+ resultPrefixAttr },
+ new ProcessorNamespaceAlias(), null /* class object */, 20, true),
+ new XSLTElementDef(
+ this,
+ Constants.S_BUILTIN_EXTENSIONS_URL,
+ "component",
+ null /*alias */,
+ new XSLTElementDef[]{
+ new XSLTElementDef(
+ this,
+ Constants.S_BUILTIN_EXTENSIONS_URL,
+ "script",
+ null /*alias */,
+ new XSLTElementDef[]{
+ charData } /* elements */,
+ new XSLTAttributeDef[]{
+ new XSLTAttributeDef(
+ null,
+ "lang",
+ XSLTAttributeDef.T_NMTOKEN,
+ true),
+ new XSLTAttributeDef(
+ null, "src", XSLTAttributeDef.T_URL, false) },
+ new ProcessorLRE(),
+ ElemExtensionScript.class /* class object */, 20, true) }, // EMPTY
+ new XSLTAttributeDef[]{
+ new XSLTAttributeDef(
+ null, "prefix", XSLTAttributeDef.T_NMTOKEN, true),
+ new XSLTAttributeDef(
+ null, "elements", XSLTAttributeDef.T_STRINGLIST, false),
+ new XSLTAttributeDef(
+ null, "functions", XSLTAttributeDef.T_STRINGLIST, false) },
+ new ProcessorLRE(), ElemExtensionDecl.class /* class object */),
+ exsltFunction, xslFunction/* exslt, stylesheet function*/,
+ xslPrincipalResultDocument}; //end of topevelElements
+
XSLTAttributeDef excludeResultPrefixesAttr =
new XSLTAttributeDef(null, "exclude-result-prefixes",
XSLTAttributeDef.T_STRINGLIST, false);
1.12.18.1 +18 -4 xml-xalan/java/src/org/apache/xalan/processor/ProcessorOutputElem.java
Index: ProcessorOutputElem.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/processor/ProcessorOutputElem.java,v
retrieving revision 1.12
retrieving revision 1.12.18.1
diff -u -r1.12 -r1.12.18.1
--- ProcessorOutputElem.java 2 Jan 2001 03:36:42 -0000 1.12
+++ ProcessorOutputElem.java 4 Jun 2002 19:52:38 -0000 1.12.18.1
@@ -72,6 +72,7 @@
import org.xml.sax.Attributes;
+
/**
* TransformerFactory for xsl:output markup.
* @see <a href="http://www.w3.org/TR/xslt#dtd">XSLT DTD</a>
@@ -79,7 +80,7 @@
*/
class ProcessorOutputElem extends XSLTElementProcessor
{
-
+
/** The output properties, set temporarily while the properties are
* being set from the attributes, and then nulled after that operation
* is completed. */
@@ -90,7 +91,7 @@
* @see javax.xml.transform.OutputKeys#CDATA_SECTION_ELEMENTS
* @param newValue non-null reference to processed attribute value.
*/
- public void setCdataSectionElements(java.util.Vector newValue)
+ public void setCdataSectionElements(java.util.Vector newValue, QName qname)
{
m_outputProperties.setQNameProperties(OutputKeys.CDATA_SECTION_ELEMENTS, newValue);
}
@@ -204,6 +205,18 @@
QName key = new QName(attrUri, attrLocalName);
m_outputProperties.setProperty(key, attrValue);
}
+
+ //XSLT 2.0
+
+ public void setName(QName v)
+ {
+ m_outputProperties.setQNameProperty("name", v);
+ }
+
+ public QName getName()
+ {
+ return m_outputProperties.getQNameProperty("name");
+ }
/**
* Receive notification of the start of an xsl:output element.
@@ -234,7 +247,7 @@
m_outputProperties.setLocaterInfo(handler.getLocator());
m_outputProperties.setUid(handler.nextUid());
setPropertiesFromAttributes(handler, rawName, attributes, this);
-
+
// Access this only from the Hashtable level... we don't want to
// get default properties.
String entitiesFileName =
@@ -254,7 +267,8 @@
}
}
- handler.getStylesheet().setOutput(m_outputProperties);
+ // for 2.0, can have multiple output properties, identified by name.
+ handler.getStylesheet().setOutput(m_outputProperties);
ElemTemplateElement parent = handler.getElemTemplateElement();
parent.appendChild(m_outputProperties);
No revision
No revision
1.2.2.1 +0 -0 xml-xalan/java/src/org/apache/xalan/processor/Attic/ProcessorResultDocument.java
1.2.2.1 +1 -1 xml-xalan/java/src/org/apache/xalan/processor/Attic/ProcessorFunction.java
1.2.2.1 +0 -0 xml-xalan/java/src/org/apache/xalan/processor/Attic/ProcessorFuncResult.java
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org