我在验证xml,xslt方面遇到了一些问题。 我有一个xslt样式表,可以将xml数据源转换为xsl:fo文档。 像这样:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns="http://www.w3.org/1999/xhtml">
<fo:layout-master-set>
<fo:simple-page-master margin-top="25mm" margin-bottom="25mm" margin-left="25mm" margin-right="25mm" page-width="210mm" page-height="297mm" master-name="simplePageLayout">
<fo:region-body region-name="xsl-region-body" column-gap="0.25in" />
<fo:region-before region-name="xsl-region-before" display-align="after" extent="0.1mm" padding-top="0pt" padding-left="0.4in" padding-right="0.4in" padding-bottom="0pt" />
<fo:region-after region-name="xsl-region-after" display-align="before" extent="0.4in" padding-top="4pt" padding-left="0.4in" padding-right="0.4in" padding-bottom="0pt" />
</fo:simple-page-master>
<fo:page-sequence-master master-name="default-sequence">
<fo:repeatable-page-master-reference master-reference="simplePageLayout" />
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="default-sequence">
<fo:flow flow-name="xsl-region-body">
<fo:block font-family="Segoe UI" color="#000000" font-size="9pt" />
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
我想要做的是验证编写的xsl:fo元素,忽略xsl标记。可能吗? 现在我使用dtd验证(我也有xsd模式)来验证Fo,但是它在每个xsl标签上都给出了一个错误。
要点: 是否可以仅针对模式验证元素,忽略xsl标记,我该怎么做?也许是C#中的代码片段,或提示如何修改文档?
答案 0 :(得分:0)
您要执行的架构验证是执行转换后的输出,而不是针对XSLT文档。当您对输入XML运行XSLT转换时,结果输出不应包含任何XSL标记。