在xslt样式表中验证xsl fo

时间:2010-03-23 23:50:58

标签: c# xml xslt

我在验证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#中的代码片段,或提示如何修改文档?

1 个答案:

答案 0 :(得分:0)

您要执行的架构验证是执行转换后的输出,而不是针对XSLT文档。当您对输入XML运行XSLT转换时,结果输出不应包含任何XSL标记。