gpt4 book ai didi

xml - DTD 实体与 XML 模式元素

转载 作者:数据小太阳 更新时间:2023-10-29 01:49:55 24 4
gpt4 key购买 nike

我使用文档 DTD 执行了以下操作:

文件.xsl:

<!DOCTYPE xsl:stylesheet[
<!ENTITY red "rgb(255,0,0)">
]>

<xsl:stylesheet>
[...]
<xsl:attribute name="color">&red;</xsl:attribute>
[...]
</xsl:stylesheet>

我想将所有内容都更改为 XML-Schema。所以我尝试了:

文件.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>

文件.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>

现在通过 Xalan red 解析文件不像在 DTD 版本中那样被翻译。我的错误在哪里?解析过程中是否没有读取Schema文件?

最佳答案

fixed元素定义中的属性不会告诉解析器进行文本替换。它只是意味着元素的值必须始终相同。

事实上,我相信您的 XSLT 生成的 XML 不会根据您的模式进行验证,因为 <defs:red> 的值元素不是“rgb(255,0,0)”。即使你使用了 default而不是 fixed , 这不是文本替换。这只是意味着,如果没有指定值,当在 DOM 实例中查询该值时,您会发现该值设置为“rgb(255,0,0)”。

关于xml - DTD 实体与 XML 模式元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1203690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com