Xsd 有没有这样的东西叫做;“虚拟URL”;对于名称空间?
我在当前作业中继承的一个web服务包含具有以下命名空间定义的WSDL模式:Xsd 有没有这样的东西叫做;“虚拟URL”;对于名称空间?,xsd,wsdl,xml-namespaces,Xsd,Wsdl,Xml Namespaces,我在当前作业中继承的一个web服务包含具有以下命名空间定义的WSDL模式: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mns="http://my.example.com/sumproj/msgs.xsd"
xmlns:tns="http://my.example.com/sumproj"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://my.example.com/sumproj/msgs.xsd"
elementFormDefault="qualified">
上面列出的所有外部URL都可以通过web浏览器访问,但内部URL(my.example.com域)只会产生“找不到”错误:
未找到
在此服务器上找不到请求的URL/sumproj/msgs.xsd
由于询问某些事物为何以这种方式实现的人已经离开,我想知道这是一个bug还是一个特性:
- 创作开发人员是否打算将名称空间XSD放在该服务器上,但没有实现它
- 或者是某种类型的安全特性,其中URL只能由web服务通过配置XML访问,在实际访问localhost或类似内容时,有效地将此URL定义为虚拟URL
http://www.example.org/wine
和http://www.Example.org/wine
)就命名空间名称匹配而言,不计算为相等。如果要求命名空间处理器取消对命名空间名称的引用,这将毫无意义
W3C技术架构组(TAG)在it文档中从更高层次的角度讨论了这一复杂的问题。特别见
- 第3.5节(阐明了“引用并不意味着取消引用”的原则):“应用程序开发人员或规范作者不应在每次引用时要求对表示进行网络检索。”
- 关于XML名称空间的第4.5.3节
- 第4.5.4节:名称空间文档(标签推荐)