在xml-schema中注释appinfo的约定?

时间:2009-11-10 06:52:00

标签: xsd annotations

我相信以下三点在句法上是正确的;但根据惯例允许哪些(特别是在企业中)?


下面的第一个用于我见过的大多数例子(例如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"/>

非常感谢您的评论!

2 个答案:

答案 0 :(得分:5)

<xs:appinfo>的“标准”用法的有趣示例位于http://docstore.mik.ua/orelly/xml/schema/ch14_02.htmhttp://docstore.mik.ua/orelly/xml/schema/ch15_01.htm#ch15-77057

请注意<xs:appinfo>应该包含应用程序要处理的信息,而不是人类可读的注释(为此使用<xs:documentation>。)

答案 1 :(得分:3)

我认为你没有听到任何声音,因为我不认为这些注释是常用的,而且规范的重点是允许任何人放置任何帮助他们的东西。

我见过的唯一惯例是XHTML文档,当然看起来不像你的任何选项。

您可能会考虑像Apache XmlSchema这样的处理库是否等同于您的所有选项。