XSD 注释和文档元素,以及如何使用它们

标签 xsd

我们正在创建符合以下 xsd 的 xml 文件:http://www.topografix.com/gpx/1/1/gpx.xsd此 xsd 支持“...通过在此处添加您自己的元素进行扩展...”,请参阅 extensionsType,为了方便起见,我在下面复制了它。

1) 我不明白注释和文档是否是出现在兼容 xml 中的文字元素名称。我相信他们不是,但需要确认。我假设一个合规文档将在任何 [extensions] 元素内的任何位置简单地包含任意数量的我们自己的自定义元素,对吗?

2) 为什么会有 两个下面成对的注释/文档元素,其中一个是一个序列?

 <xsd:complexType name="extensionsType">
       <xsd:annotation>
        <xsd:documentation>
         You can add extend GPX by adding your own elements from another schema here.
        </xsd:documentation>
       </xsd:annotation>
        <xsd:sequence>
         <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
           <xsd:annotation>
            <xsd:documentation>
             You can add extend GPX by adding your own elements from another schema here.
            </xsd:documentation>
           </xsd:annotation>
         </xsd:any>
        </xsd:sequence>
      </xsd:complexType>

最佳答案

1) 来自 XML 架构 specification :“注释提供了针对人类和机器的模式组件注释。”模式作者使用 xsd:documentation 作为,比如 Java 或 .NET,开发人员使用注释。

注释是 XML 模式工件;它们不会出现在 XML 文档中。是的,你的扩展元素应该放在 下;你可以使用任何命名空间,除了 http://www.topografix.com/GPX/1/1

Sample XML showing extension elements

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1" creator="creator1" xmlns="http://www.topografix.com/GPX/1/1">
    <extensions>
        <my:element xmlns:my="urn:tempuri-org:some">Hello!</my:element>     
    </extensions>
</gpx> 

2)很难说为什么有两个相同的评论;但区别在于,一个记录复杂类型,而另一个记录 xsd:any 元素。我个人会使用不同的注释,首先解释复杂类型的用途,第二个如图所示。

关于XSD 注释和文档元素,以及如何使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8187193/

相关文章:

xml - XSD 限制 - whiteSpace "replace",但不允许有空格

java - 属性 'xsi:noNamespaceSchemaLocation' 不允许出现在元素 'VAST' 中

java - JAXB:当我们有很多类型的 xmlMessage 时,如何在 xmlMessage 与其 Java 类之间进行映射以进行解码

XML Schema Identity constraints - 我可以在选择器的 XPath 中使用绝对路径吗?

mysql - 通过 pentaho 模式工作台在 saiku 中显示立方体

c# - 使用 XSD : attribute is not declared. 进行 XML 验证但它是 - 请参见示例

java - XSD 配置以在运行时引用 XML 文件中配置的属性

xml - 是否有一个好的开源、基于 XSD 的 Web 编辑器?

java - 如何从相应的 xsd'S 获取自己的 xml 编辑器的信息?

c# - 从 session 将连接字符串分配给表适配器