我的 xsd 配置中有以下标头:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns="http://www.mycompany.com/schema/app"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.mycompany.com/schema/app"
elementFormDefault="qualified">
Run Code Online (Sandbox Code Playgroud)
切换到 XSD 1.1 需要什么?
有必要开始使用<xs:assert/>标签。
编辑:这个答案错误了 6 年。我最初声称添加version该属性声明架构遵循 XML Schema 1.1 标准。但是,该属性与 XSD 版本无关,它可以用于任意用户定义的版本控制。
我现在已经删除了虚假信息。
指示您的 XML 模式文档遵循 XML 模式 1.1 规范意味着将以下内容添加到最外面的元素:
xmlns:vc=http://www.w3.org/2007/XMLSchema-versioningvc:minVersion = "1.1"以下是该元素的示例xs:schema:
<xs:schema xmlns="http://www.mycompany.com/schema/app"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.mycompany.com/schema/app"
elementFormDefault="qualified"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
vc:minVersion="1.1">
Run Code Online (Sandbox Code Playgroud)
即使您添加此信息,您的架构处理器也可能无法处理断言等 XSD 1.1 构造,并且指示版本 1.1 不会神奇地启用 1.1 处理。
换句话说,“切换”到 XSD 1.1 并不意味着在您的xs:schema元素中提及版本,它意味着确保您的模式处理器理解 XML Schema 1.1。要找出答案,只需xs:assert在架构中包含一个元素并检查是否收到任何错误消息。也许您的工具中有架构版本的设置,就像 Oxygen 中那样:
有关设置 XML 架构版本的更多方法,请参阅Oxygen 文档。
顺便说一句:如果不支持 XSD 1.1,可能仍然支持 Schematron——一种对于断言和类似规则非常有用的语言。
| 归档时间: |
|
| 查看次数: |
8755 次 |
| 最近记录: |