xml - 为什么 XSD 中的 "maxLength"属性不限制返回的字符数?

标签 xml xslt xsd

我有一个 XSD 元素定义如下:

<xsd:simpleType name="string1500">
    <xsd:restriction base="xsd:string">
        <xsd:maxLength value="1500" />
    </xsd:restriction>
</xsd:simpleType>

此元素通过以下方式在另一个 XSD 中引用:

<xsd:element minOccurs="0" name="Description" type="bons3:string1500" />

(bons3 在两个 XSD 中引用相同的命名空间。)

当长度为 2000 个字符的字符串传递到 XSLT 中的“描述”字段时,即使设置了 1500 个字符的限制,所有 2000 个字符也会被保留。我是否设置了错误的限制,或者是否有其他方法可以确保 XSD 中该字段的最大长度为 1500 个字符?

谢谢。

最佳答案

XSLT 和 XSD 是两个不同的东西。 XSLT 1.0 不关心 XSD 或任何其他 XML 模式语言。 XSLT 2.0 引入了 XSD 感知扩展,您必须为此找到合适的 XSLT 处理器,这可能会阻止您处理 XML;但是,它不会自动使其有效。

关于xml - 为什么 XSD 中的 "maxLength"属性不限制返回的字符数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219346/

相关文章:

javascript - 将我的内容更新为 XML 文件

java - JAXB XML 动态解码

string - 如何在 xslt 2.0 中解析字符串到日期

java - 从 xsl 读取字符串时如何摆脱 '\n' 字符?

python - 具有 XPath 支持的快速 python XML 验证器

java xml 验证 : getting a better validation error description

c# - 使用已知的 XSD 从 XML 中读取类型化对象

java - 针对多个 XSD(存储为资源)验证 XML。 Spring 启动

XSLT 替换命名空间并添加新的(未使用的)命名空间

regex - XSD 模式限制 - 与正斜杠交替