我相信下面三个在语法上是正确的; 但根据惯例允许哪些(特别是在企业中)?
下面的第一个用于我见过的大多数例子(例如JAXB),但它的详细说明:
<xs:annotation>
<xs:appinfo>
<myinfo>don't panic</myinfo>
</xs:appinfo>
</xs:annotation>
Run Code Online (Sandbox Code Playgroud)
下面的第二个是允许的,因为允许任何属性<appinfo>(不在xml架构自己的命名空间中).它更短,看起来合理 - 但它是传统的吗?
<xs:annotation>
<xs:appinfo myinfo="don't panic"/>
</xs:annotation>
Run Code Online (Sandbox Code Playgroud)
下面的最后一个是我最喜欢的,因为它太短并且不会使架构混乱.我确信这是合法的,因为同样<appinfo>,任何属性都是允许的<annotation>(同样,提供非xml架构命名空间).但是它在不使用的情况下对应用程序信息进行编码<appinfo>,所以我担心它会不受欢迎.可不可能是?
<xs:annotation myinfo="don't panic"/>
Run Code Online (Sandbox Code Playgroud)
非常感谢您的评论!
有点"标准"使用的有趣例子<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>用于此).
我认为您没有听到任何内容,因为我认为这些注释并不常用,并且规范的全部要点是允许任何人将任何对他们有帮助的东西放在那里。
我见过的唯一约定是 XHTML 文档,当然它看起来不像您的任何选择。
您可能会研究 Apache XmlSchema 等处理库是否同等对待您的所有选项。