记录XSD的麻烦少了?

时间:2009-05-07 13:00:33

标签: documentation xsd

我们最近开始通过XML向客户提供数据提取。我们有一个模式(XSD),它定义了这个XML的结构。我想在模式本身中包含元素和属性的文档。我发现的唯一的东西是非常麻烦的“注释”和“文档”标签。

所以你拿一些简单易读的东西:

<xs:element name="TransactionType" type="xs:string"  />

结束这个丑陋的混乱:

<xs:element name="TransactionType" type="xs:string">
    <xs:annotation>
        <xs:documentation>
            Type of transaction
        </xs:documentation>
    </xs:annotation>
</xs:element>

有什么更好的吗?说这样的话:

<xs:element name="TransactionType" type="xs:string" description="Type of transaction"  />

PS:我们已将此摘录提供为简单的固定长度文件和CSV。一个客户端请求XML,我们现在有第二个客户端想要使用XML。我被要求提供文件。我们最初为其开发XML版本的第一个客户端只需要一个XSD。因此,我希望只向第二个客户发送一个文档 - 带有描述元素的简单注释的XSD。

5 个答案:

答案 0 :(得分:3)

您是否意识到您可以轻松地将XSD(即使使用繁琐的注释和文档标签)转换为相当易读的HTML文档文件?

魔术被称为xs3p,它是一个相当大的XSLT文件,可以将您的XSD(毕竟只是另一个XML)转换为结构良好,非常有用的文档HTML。

它是免费的,它有效 - 很棒! : - )

当然 - 您仍然需要将注释/文档添加到XSD,但它可能是一个比XSD和单独的文档文件更好的解决方案(很可能迟早会不同步... ...)

马克

答案 1 :(得分:1)

不,没有。只有<xs:annotation><xs:documentation>

答案 2 :(得分:0)

XSD提供您提供的文档标记。 我同意你的意见,它们很麻烦,使你的文件更大。

不幸的是,这就是我们所拥有的。

答案 3 :(得分:0)

是的,这很麻烦,但遗憾的是它是文档的唯一机制。但是,提供注释标记以满足许多需求。您可以在其中放置计算机处理说明,您可以在其中放置人类可读的文档。

我认为,XSD的设计更有效地将信息传达给计算机程序。例如,如果从模式运行代码生成器,则代码生成器可以在代码自我文档中包含注释元素信息,例如JavaDoc或其他语言的等价物。

此外,注释文档标记可以包含任意长度的文本。它可以包含HTML标记,实际上也包括任意XML。这就是为什么它不是一个属性,而是一个元素。

答案 4 :(得分:0)

我有一个建议 - 你为什么不按照你提出的方式编写模式,即

<xs:element name="TransactionType" type="xs:string" description="Type of transaction" />

并通过XSLT将其转换为

的完整格式
<xs:element name="TransactionType" type="xs:string"> 
 <xs:annotation> 
  <xs:documentation> Type of transaction </xs:documentation> 
 </xs:annotation> 
</xs:element>

您将转换后的XSD发送给客户,在内部使用紧凑版本。