Jan*_*Jan 6 xml xslt xsd dtd entity
使用Document DTD我做了以下事情:
file.xsl:
<!DOCTYPE xsl:stylesheet[
<!ENTITY red "rgb(255,0,0)">
]>
<xsl:stylesheet>
[...]
<xsl:attribute name="color">&red;</xsl:attribute>
[...]
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
我想将所有内容都更改为XML-Schema.所以我尝试过:
file.xsd:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="red" type="xs:token" fixed="rgb(255,0,0)" />
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)
file.xsl:
<xsl:stylesheet
xmlns:defs="http://www.w3.org/2001/XMLSchema-instance"
defs:noNamespaceSchemaLocation="file.xsd">
[...]
<xsl:attribute name="color"><defs:red/></xsl:attribute>
[...]
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
现在通过Xalan red解析文件并不像DTD版本那样进行转换.我的错误在哪里?在解析过程中是否未读取架构文件?
fixed元素定义中的属性不会告诉解析器执行文本替换.它只是意味着元素的值必须始终相同.
实际上,我相信您的XSLT正在生成不会针对您的架构进行验证的XML,因为该<defs:red>元素的值不是" rgb(255,0,0)".即使您使用default而不是fixed,也不是文本替换.它只是意味着,如果没有指定值,当在DOM实例中查询该值时,您将找到设置为" rgb(255,0,0)" 的值.
| 归档时间: |
|
| 查看次数: |
4942 次 |
| 最近记录: |