我相信以下三点在句法上是正确的;但根据惯例允许哪些(特别是在企业中)?
下面的第一个用于我见过的大多数例子(例如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"/>
非常感谢您的评论!
答案 0 :(得分:5)
有<xs:appinfo>
的“标准”用法的有趣示例位于http://docstore.mik.ua/orelly/xml/schema/ch14_02.htm和http://docstore.mik.ua/orelly/xml/schema/ch15_01.htm#ch15-77057
请注意<xs:appinfo>
应该包含应用程序要处理的信息,而不是人类可读的注释(为此使用<xs:documentation>
。)
答案 1 :(得分:3)
我认为你没有听到任何声音,因为我不认为这些注释是常用的,而且规范的重点是允许任何人放置任何帮助他们的东西。
我见过的唯一惯例是XHTML文档,当然看起来不像你的任何选项。
您可能会考虑像Apache XmlSchema这样的处理库是否等同于您的所有选项。