我正在使用大约十几个XSLT文件来提供大量输出格式。目前,用户必须知道要导出到的文件格式的扩展名。 RTF,HTML,TXT。
我还想使用参数来提供更多选项。如果我可以将元数据嵌入到XSL文件中,那么我可以通过扫描文件来获取详细信息。
这是我在想的。在此示例中,程序必须解析所需信息的注释。
<?xml version="1.0" encoding="UTF-8"?>
<!-- Title: Export to Rich Text Format -->
<!-- Description: This Stylesheet converts to a Rich Text Format format which may be used in a word processor such as Word -->
<!-- FileFormat: RTF -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="CompanyName"/> <!-- Format:String, Description: Company name to be inserted in the footer -->
<xsl:param name="DateDue"/> <!-- Format:Date-yyyy-mm-dd, Description: Date Due -->
<xsl:param name="IncludePicture">true</xsl:param><!-- Format:Boolean, Description: Do you want to include a graphical representation? -->
<xsl:template match="/">
<!-- Stuff -->
</xsl:template>
</xsl:stylesheet>
那里有标准吗?我是否需要屠宰多个(都柏林核心和一些XML Schema)?
P.S。正在应用的项目是Argumentative。
答案 0 :(得分:6)
这是我在想的。在 这个例子是程序必须的 解析所需的注释 信息。
您不需要在评论中对元数据进行编码。
可以使用普通的XML标记将元数据指定为XSLT样式表的一部分 - 因为我们需要的结构和含义丰富。
以下是如何执行此操作的示例:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:meta="my:meta">
<xsl:output method="text"/>
<meta:metadata>
<title>Title: Export to Rich Text Format </title>
<description>
This Stylesheet converts to a Rich Text
Format format which may be used in a word processor
such as Word
</description>
<fileFormat>RTF</fileFormat>
<parameters>
<parameter name="CompanyName" format="xs:string"
Description="Company name to be inserted in the footer"/>
<parameter name="DateDue" format="xs:date"
Description="Date Due"/>
<parameter name="IncludePicture" format="xs:boolean"
Description="Do you want to include a graphical representation?"/>
</parameters>
</meta:metadata>
<xsl:param name="CompanyName"/>
<xsl:param name="DateDue"/>
<xsl:param name="IncludePicture" select="true"/>
<xsl:variable name="vMetadata" select=
"document('')/*/meta:metadata"/>
<xsl:template match="/">
This is a demo how we can access and use the metadats.
Metadata --> Description:
"<xsl:copy-of select="$vMetadata/description"/>"
</xsl:template>
</xsl:stylesheet>
当此转换应用于任何XML文档(未使用)时,结果为:
This is a demo how we can access and use the metadats.
Metadata --> Description:
"
This Stylesheet converts to a Rich Text
Format format which may be used in a word processor
such as Word
"
请注意:
可以在任何xslt样式表的全局级别指定名称空间中的任何元素(当然不是无命名空间而不是xsl名称空间)。
可以使用xslt函数document()
访问此类元素。