我工作的应用程序具有符合XSD架构的XML输出。随着功能添加到应用程序中,XSD发生了变化,我想在XSD文件中记下模式的版本。
也许我错过了一些东西,但我还没有找到标记模式版本的内置方法。
你是怎么做到的?
答案 0 :(得分:18)
您可以使用xsd文档的命名空间
<xs:schema targetNamespace="http://yourcompany/yourapp/1.0" ... >
...
</xs:schema>
作为一个例子,看看w3.org定义的xsd,他们就是这样做的。请注意,更改版本号通常定义为xsd的任何消费者的重大变化(无论实际变化有多小)。
对于影响较小的版本控制,似乎就将一个版本属性放在根元素上达成了一致:
<xs:schema version="1.0.0" ...>
...
</xs:schema>
答案 1 :(得分:8)
根据schema
元素本身有version
属性:
<schema
attributeFormDefault = (qualified | unqualified) : unqualified
blockDefault = (#all | List of (extension | restriction | substitution)) : ''
elementFormDefault = (qualified | unqualified) : unqualified
finalDefault = (#all | List of (extension | restriction | list | union)) : ''
id = ID
targetNamespace = anyURI
version = token
xml:lang = language
{any attributes with non-schema namespace . . .}>
Content: ((include | import | redefine | annotation)*, (((simpleType | complexType | group | attributeGroup) | element | attribute | notation), annotation*)*)
</schema>
参见http://www.w3.org/TR/xmlschema-1/#key-schema,“3.15.2模式的XML表示”
但是,如果您发布了架构,那么我认为处理它的最佳方法是使用目标命名空间。这将强制使用正确的版本(但破坏兼容性)