Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XSLT和XSL,谁实现了它们?_Java_Xslt - Fatal编程技术网

Java XSLT和XSL,谁实现了它们?

Java XSLT和XSL,谁实现了它们?,java,xslt,Java,Xslt,我遇到过XSLT,而XSLT的一个关键组件是XSL。据我所知,XSLT用于转换,例如,XML到HTML文档。对于转换,它使用XSL 现在,我的问题是: Q1)谁实现了XSL?它是JDK的一部分吗 我看到的一些代码片段: TransformerFactory factory = TransformerFactory.newInstance(); StreamSource source = new StreamSource(new StringReader(inputXML)); Resource

我遇到过
XSLT
,而
XSLT
的一个关键组件是
XSL
。据我所知,
XSLT
用于转换,例如,
XML
HTML
文档。对于转换,它使用
XSL

现在,我的问题是:

Q1)谁实现了
XSL
?它是JDK的一部分吗

我看到的一些代码片段:

TransformerFactory factory = TransformerFactory.newInstance();
StreamSource source = new StreamSource(new StringReader(inputXML));
Resource resource = new ClassPathResource("xslTransformationFile.xsl");
 ...
Transformer transformer = factory.newTransformer(xslStream);
transformer.transform(source,result);
其中大部分来自包:
javax.xml.transform.*
rt.jar
(jdk的一部分)中的it

问题2)这是否意味着Java支持开箱即用的
XSL
?也就是说,我们不需要下载任何额外的jar来使用
XSL

Q3)包是
javax.xml.transform.*
JAXP的一部分吗

有人能帮我澄清一下吗?

看,我认为它没有提到
XSL
作为
XSLT
的一个组件。在中,您可以看到,根据术语
XSL
的定义,
XSLT
XSL-FO
XPath
一起构成了W3C
XSL
工作组规范的一部分。至于XSLT在Java中的实现,Xalan和Saxon被广泛使用,Xalan是Apache的XSLT1.0处理器,它分别集成在Sun的Oracle JRE中。Saxon与Saxon 6.5一起作为XSLT 1.0处理器存在,与Saxon 9一起作为XSLT 2.0处理器存在,不断地进一步发展,以实现XSLT、XPath和XQuery规范的进展,因此它现在实现了XPath 3.0标准以及XSLT 3.0和XPath 3.1的候选建议。众所周知,IBMWebSphere也有自己的XSLT和XPath2.0的Java实现

因此,如果您想在不使用任何附加JAR的情况下使用Oracle JRE,那么您可以使用集成版Xalan的XSLT 1.0,如果您想使用XSLT 2.0,则需要使用Saxon(在Maven and的开源HE版本中提供),对于正在开发的XSLT 3.0语言的各种功能,您需要的是来自的商业PE或EE版本。

请参见,我认为它没有在任何地方提到
XSL
作为
XSLT
的一个组件。在中,您可以看到,根据术语
XSL
的定义,
XSLT
XSL-FO
XPath
一起构成了W3C
XSL
工作组规范的一部分。至于XSLT在Java中的实现,Xalan和Saxon被广泛使用,Xalan是Apache的XSLT1.0处理器,它分别集成在Sun的Oracle JRE中。Saxon与Saxon 6.5一起作为XSLT 1.0处理器存在,与Saxon 9一起作为XSLT 2.0处理器存在,不断地进一步发展,以实现XSLT、XPath和XQuery规范的进展,因此它现在实现了XPath 3.0标准以及XSLT 3.0和XPath 3.1的候选建议。众所周知,IBMWebSphere也有自己的XSLT和XPath2.0的Java实现


因此,如果您想在不使用任何附加JAR的情况下使用Oracle JRE,那么您可以使用集成版Xalan的XSLT 1.0,如果您想使用XSLT 2.0,则需要使用Saxon(在Maven and的开源HE版本中提供),对于正在开发的XSLT 3.0语言的各种功能,您需要的是商业PE或EE版本。

尝试回答您的问题:

(a) 不,XSL不是XSLT的一个组件。有时它被用作XSLT的同义词,有时它被用来表示XSL-FO,有时在旧的Microsoft文档中,它被用来指代XSLT之前的Microsoft语言。但从这些意义上讲,XSL都不是XSLT的一个组件

(b) 谁实现了XSLT?这取决于你是用现在时态还是过去时态

  • XSLT1.0有许多实现,一些来自IBM、Sun、Microsoft和Oracle等大公司,一些来自初创企业和独立爱好者(例如Daniel Veillard的libxslt,或者Uche Ogbuji的4XSLT,或者Petr Cimprich的Sablotron)。其中一些实现仍在使用中,但没有一个正在积极开发中
  • XSLT2.0的实现要少得多,最著名的是我自己的Saxon产品、Altova的RaptorXML服务器、IBM的Websphere处理器、XmlPrime和MarkLogic处理器
  • 有三家公司表示正在实施XSLT3.0:我自己的Saxonica、Exselt和Altova

JDK“开箱即用”的实现是一个名为Xalan的XSLT 1.0处理器,它实际上是两个原始处理器的混合体,IBM的LotusXSL(最初是Lotus)和Sun的XSLTC。

尝试回答您的问题:

(a) 不,XSL不是XSLT的一个组件。有时它被用作XSLT的同义词,有时它被用来表示XSL-FO,有时在旧的Microsoft文档中,它被用来指代XSLT之前的Microsoft语言。但从这些意义上讲,XSL都不是XSLT的一个组件

(b) 谁实现了XSLT?这取决于你是用现在时态还是过去时态

  • XSLT1.0有许多实现,一些来自IBM、Sun、Microsoft和Oracle等大公司,一些来自初创企业和独立爱好者(例如Daniel Veillard的libxslt,或者Uche Ogbuji的4XSLT,或者Petr Cimprich的Sablotron)。其中一些实现仍在使用中,但没有一个正在积极开发中
  • XSLT2.0的实现要少得多,最著名的是我自己的Saxon产品、Altova的RaptorXML服务器、IBM的Websphere处理器、XmlPrime和MarkLogic处理器
  • 有三家公司表示正在实施XSLT3.0:我自己的Saxonica、Exselt和Altova
JDK的“开箱即用”实现是一个名为Xalan的XSLT1.0处理器,它实际上是一个