我正在从命令行运行saxon 9HE来转换xml文件目录。xslt加载两个文档作为共享参考文档以查找公共信息,即一个是公司列表,用于验证公司并返回公司信息以显示在生成的html页面上,另一个是零件列表,用于验证零件并返回零件信息以显示在页面上。这些文件在xml目录中可以有多个版本,所以我得到了它们的一个集合,并使用最后一个版本,这是最近的一个。
我想知道的是在命令行转换期间,这些共享文档是为所有输入xml文件加载/缓存到内存中,还是为正在处理的目录中的每个输入xml文件重新加载?
xml样本
<companies>
<company code="123"/>
<address>
<street>1 MAIN STREET</street>
<city>City</city>
<state>ST</state>
<country>USA</country>
<phoneNumber>800-123-4567</phoneNumber>
</address>
</company>
</companies>
样本xslt
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="xhtml" xpath-default-namespace="http://www.w3.org/1999/xhtml"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
indent="yes"
omit-xml-declaration="yes"/>
<xsl:param name="currentDir">false</xsl:param>
<xsl:variable name="companyCollection" select="collection(iri-to-uri(concat ('file:///',$currentDir, '/xml/', '?select=company_, '*.(xml|XML)')))[last()]"/>
<xsl:variable name="companyDoc" select="$companyCollection//companies"/>
<xsl:key name="companyKey" match="company" use="company/@mcode"/>
如果为每个单独的转换加载它们,那么在处理xml文件目录时,我如何让它们只加载一次?如果不能从命令行执行,那么可以从java执行吗?
或者最好/最快的方法是提前输入文件名,并在document()命令中硬编码,以防止加载每个输入xml文件?
<xsl:variable name="companyDoc" select="document(company.xml)/companies"/>
我们正在处理目录中成千上万的xml文件,并希望使其尽可能高效。
谢谢你!
当您从命令行处理一个目录时,每个输入文件都使用一个新的Transformer进行处理,因此不需要缓存源文档。
如果查找文件是静态已知的(doc('lookup.xml')
),那么您可以通过添加选项--preEvalateDockeytion: on
来强制编译时加载文档。由于样式表只编译一次,这将产生只加载一次查找文档的效果。
一般来说,如果从Java应用程序(使用s9api)而不是从命令行运行作业,那么对执行的控制就会大得多。
Kubernetes官方网站 Kubernetes文档 Kubernetes course CNCF项目贡献统计 Kubernetes项目贡献统计 Kubernetes github metrics Kubernetes submit queue Github public data Kubernetes the hard way Kubernetes Bootcamp Design patter
参考文档 Dockerfie 官方文档:https://docs.docker.com/engine/reference/builder/ Dockerfile 最佳实践文档:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ Docker 官方镜像 Dockerfile:https://github.
元素 元素最重要的属性就是base-package,用来定义查找Spring Data repository接口时扫描包的路径。 Table 3.属性 名称 描述 base-package 定义查找所有继承*Repository的repository接口时所扫描包的路径,该路径下所有的包都会被扫描。允许使用通配符 repository-impl-postfix 定义自定义repository实现类
我有一个目录,它是在执行应用程序后创建的。在使用应用程序的过程中,它充满了一些图片,这些图片是ComboBox的ItemsSource。在关闭应用程序之前,我试图通过设置new()或NULL来清除ItemsSource并删除该目录。如果目录为空,则会正常删除。但除此之外——什么都没有发生,也没有例外。我做错了什么? 创建目录并将路径值分配给“FeedBackScreenshotsPath” 删除
元素 允许开发者通过Spring Data repository框架填充数据存储。 Table 4.Attributes(属性) 名称 描述 locations 定义包含用来读取填充对象的文件的位置
浏览下面的网页,了解更多 CityBuilder 相关信息。 常用坐标系 常用在线工具 常用地理底图 常见问题