XML Schema:xs:annotation中的多个相邻xs:documentation元素

时间:2013-04-30 15:19:01

标签: xsd

我正在查看 XMLSchema * .xsd 文件,并查看如下表单:

     <xs:element name="shortName" type="vr:ShortName" minOccurs="0">
        <xs:annotation>
           <xs:documentation>
             blah blah blah ...
           </xs:documentation>
           <xs:documentation>
              blah blah blah ...
           </xs:documentation>
           <xs:documentation>
              blah blah blah ...
           </xs:documentation>
        </xs:annotation>
     </xs:element>

xs:annotation 元素中的 xs:documentation 元素。

我不知道我应该将这种形式赋予什么样的含义,或者与单个 xs:documentation 元素有什么不同。据推测,一个工具可能会将不同的文档元素呈现为单独的段落,但不是那种混淆的逻辑结构的混合表示逻辑吗?

1 个答案:

答案 0 :(得分:3)

在同一xs:documentation内有多个xs:annotation元素是有效的。当存在多种语言的文档时,使用多个元素是有意义的:

 <xs:element name="shortName" type="vr:ShortName" minOccurs="0">
    <xs:annotation>
       <xs:documentation xml:lang="en">
         This is the documentatin in English ...
       </xs:documentation>
       <xs:documentation xml:lang="it">
          Questa e' la documentazione in italiano ...
       </xs:documentation>
    </xs:annotation>
 </xs:element>

您还可以在工具中自动生成的XSD中看到多个xs:documentation元素。其背后的典型原因是该工具捕获不同级别的用户信息,并且出于在生成模式组件及其注释时碰巧合并的不同原因。然后,至少对于工具实现者来说,使用不同的标记来维护内容分离是有意义的。

另一个原因可能是相同的XSD用于为不同的形状因子生成UI,因此当使用注释时,不同的属性相关文档有助于区分使用哪个。

xs:documentation元素可以包含任意XML,而不仅仅是文本。这意味着通常在xs:documentation节点内部使用一些标记来呈现文档的格式化 - 例如使用<p>...</p>标记段落。

[根据Petru Gardea在评论中提供的信息更新/改进]