如何查看与XML命名空间关联的XML模式?

时间:2013-04-24 03:05:14

标签: xml xsd

我使用vmware ovftool创建了一个ovf文件:

<Envelope vmw:buildId="build-931074" 
          xmlns="http://schemas.dmtf.org/ovf/envelope/1"  
          xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common"  
          xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"  
          xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schem/2/CIM_ResourceAllocationSettingData"  
          xmlns:vmw="http://www.vmware.com/schema/ovf"  
          xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"  
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
....//deleting some contents
<OperatingSystemSection ovf:id="74"  
                        vmw:osType="windows7_64Guest">

如何理解以下内容:

xmlns:vmw="http://www.vmware.com/schema/ovf" 

我可以从中获得的是,它声明了名称空间前缀vmw。但是,如何查看此命名空间的模式文件?我的意思是没有模式文件,我们无法获得从该命名空间派生的词汇表。 “vmw:osType”是命名空间中的词汇表。提前感谢您的有用见解。

2 个答案:

答案 0 :(得分:0)

您必须向XSD创建者询问该架构。但是,主XSD文件通常会有schemaLocation指向架构的物理位置。

此外,XSD位于here。他们有一个很好的文档here

答案 1 :(得分:0)

如果你能从命名空间声明xmlns:vmw="http://www.vmware.com/schema/ovf"得到的是它声明了命名空间前缀vmw,那么一个原因是它实际上是可靠的。命名空间名称可用于各种目的,但XML中名称空间设计保证的唯一内容是它们提供唯一的字符串,以便不同的人可以在XML文档中使用相同的本地名称而不会出现名称冲突。

使用URI作为命名空间名称的一个原因是,URI可以被寻求更多信息的人解除引用,就像您一样。在这种情况下,URI所有者似乎没有在命名空间URI处提供任何人类可读的信息,因此您可以自己动手。

如果您可以验证您显示的文档,那么您的XSD验证程序正在某处找到该命名空间的架构文档;可能(尽管不是绝对保证)该模式文档可以从XML实例文档,xsi:schemaLocation属性中指向,也可以从验证者正在咨询的其中一个模式文档中的xs:import元素中指向

当然,您总是可以尝试询问命名空间所有者或使用搜索引擎来帮助查找命名空间的架构文档。您找到的任何模式文档当然可以是命名空间的权威或非权威定义。

祝你好运。