Xml 在XSD类型属性中使用XSD命名空间前缀
在参考资料中,我们可以看到如下示例:Xml 在XSD类型属性中使用XSD命名空间前缀,xml,xsd,xml-namespaces,xsd-validation,xml-validation,Xml,Xsd,Xml Namespaces,Xsd Validation,Xml Validation,在参考资料中,我们可以看到如下示例: 其中,类型为“xs:string”。这是否假定XSD名称空间的前缀为xs 例如,打开我们的XSD文档是否合法 如果我们这样做了,第一个例子会变成什么 这是否假定XSD模式名称空间被别名为xs 是,必须声明命名空间前缀,如xs: xmlns:xs="http://www.w3.org/2001/XMLSchema" 是的,你可以使用foo而不是xs,但是可以使用xs或xsd,因为它们已经成为惯例,因此不会让读者感到惊讶 如果
其中,类型为“xs:string”
。这是否假定XSD名称空间的前缀为xs
例如,打开我们的XSD文档是否合法
如果我们这样做了,第一个例子会变成什么
这是否假定XSD模式名称空间被别名为xs
是,必须声明命名空间前缀,如xs
:
xmlns:xs="http://www.w3.org/2001/XMLSchema"
是的,你可以使用foo
而不是xs
,但是可以使用xs
或xsd
,因为它们已经成为惯例,因此不会让读者感到惊讶
如果直接在XML中定义类型,还需要声明
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
并使用它:
xsi:type="xs:string"
另请参见是的,我找到了一种比搜索和阅读更容易回答这个问题的方法。使用OxygenXML,以下内容是有效的
我很好奇,为什么要使用foo
命名空间前缀作为http://www.w3.org/2001/XMLSchema
而不是更传统的xs
或xsd
?当有经验的开发人员看到base=“foo:string”
时,他们一开始会倾向于认为类型是自定义字符串而不是内置字符串。我完全同意@kjhughes。这里有一个关于MS SQL Server中预定义名称空间的好链接:我不想这样做,但我正在编写解析XSD并从中生成代码的代码,因此我至少需要考虑边缘情况,而不是像“xs:string”@MatthewJamesBriggs这样的硬编码错误“完成工作”。理解。如果您使用的是XML解析器,而且您绝对应该这样做,那么您必须尽力开发对所用名称空间前缀细节的依赖性。简单地说,不要那样做。