2009-11-10 54 views
8

我相信以下三者在语法上是正确的;但根据惯例允许哪些(特别是在企业中)?用于在xml-schema中注释appinfo的约定?


第一个低于在大多数例子中使用我见过的(例如JAXB),但它的冗长:

<xs:annotation> 
    <xs:appinfo> 
    <myinfo>don't panic</myinfo> 
    </xs:appinfo> 
</xs:annotation> 

下面这第二个是允许的,因为任何属性都允许在<appinfo>(不在xml模式自己的名称空间中)。它更短,而且看起来很合理 - 但它是传统吗?

<xs:annotation> 
    <xs:appinfo myinfo="don't panic"/> 
</xs:annotation> 

下面这最后一个是我最喜欢的,因为它是如此之短,并没有混淆架构。我敢肯定,这是合法的,因为像<appinfo>,被允许上<annotation>(命名空间再次,提供非XML架构)的任何属性。但它编码的应用程序信息没有使用<appinfo>,所以我担心它会被折磨。可不可能是?

<xs:annotation myinfo="don't panic"/> 

非常感谢您的意见!

回答

3

我不认为你听到什么,因为我不认为做这些注释是常用的,规范的整点是允许任何人把任何东西,帮助他们在那里。

我见过的唯一约定是XHTML文档,这当然并不像你的任何选项。

你可能会考虑像Apache的XmlSchema处理库是否把所有选项等效。