在 BizTalk 中更改 XSD 根命名空间
Change XSD root namespace in BizTalk
我想从
更改架构命名空间
xmlns:xs="http://www.w3.org/2001/XMLSchema"
到
xmlns:xs="http://www.w3.org/2007/XMLSchema-versioning"
因为它支持 "override"。但它显示错误:
The root element of a W3C XML Schema should be <schema>
and its namespace should be 'http://www.w3.org/2001/XMLSchema'
您是否更改了您的 XML 声明:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
到
<?xml version="1.1" encoding="UTF-8" standalone="no" ?>
?
此处描述 XML 1.1 中的新功能:https://www.w3.org/TR/xmlschema-guide2versioning/
此外,有些浏览器似乎还没有原生支持 XML 1.1 版本,这里讨论:http://www.herongyang.com/XML/XML-1-1-Not-Supported-in-Web-Browser.html
我很确定 BizTalk 不支持 XML 1.1、xs:override
元素或这种方式的架构版本控制。无论如何,解决使用哪个模式都会有麻烦,因为两个模式都具有相同的 targetNamespace
和根节点,并且它需要这些不同才能正确执行模式解析。您应该只使用新的 targetNamespace
创建一个新模式,例如http://existing_target_ns/v2
.
一般来说,BizTalk 中的版本控制有点棘手并且会导致很多问题 - 绑定静态编码程序集的版本号并且必须更新,服务器运行时将选择最近部署的程序集而不考虑版本.我已经看到这导致的问题多于它所能解决的问题,建议您阅读其中的 MSDN article。
我想从
更改架构命名空间xmlns:xs="http://www.w3.org/2001/XMLSchema"
到
xmlns:xs="http://www.w3.org/2007/XMLSchema-versioning"
因为它支持 "override"。但它显示错误:
The root element of a W3C XML Schema should be
<schema>
and its namespace should be 'http://www.w3.org/2001/XMLSchema'
您是否更改了您的 XML 声明:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
到
<?xml version="1.1" encoding="UTF-8" standalone="no" ?>
?
此处描述 XML 1.1 中的新功能:https://www.w3.org/TR/xmlschema-guide2versioning/
此外,有些浏览器似乎还没有原生支持 XML 1.1 版本,这里讨论:http://www.herongyang.com/XML/XML-1-1-Not-Supported-in-Web-Browser.html
我很确定 BizTalk 不支持 XML 1.1、xs:override
元素或这种方式的架构版本控制。无论如何,解决使用哪个模式都会有麻烦,因为两个模式都具有相同的 targetNamespace
和根节点,并且它需要这些不同才能正确执行模式解析。您应该只使用新的 targetNamespace
创建一个新模式,例如http://existing_target_ns/v2
.
一般来说,BizTalk 中的版本控制有点棘手并且会导致很多问题 - 绑定静态编码程序集的版本号并且必须更新,服务器运行时将选择最近部署的程序集而不考虑版本.我已经看到这导致的问题多于它所能解决的问题,建议您阅读其中的 MSDN article。