从架构中删除xs:annotation元素

时间:2015-01-29 11:49:50

标签: java xml

我有许多XSD架构,其中包含太多文档,这使得它们难以阅读和使用,我如何编写程序来生成包含所有xs:annotation元素的等效XSD文件(包括任何{只要找到{1}},xs:appinfo或其他元素,就会将其删除?

1 个答案:

答案 0 :(得分:3)

您可以通过XSLT运行每个文件以去除不需要的元素:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                              xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="xs:annotation" />
</xsl:stylesheet>

如@IanRoberts所述您只需要删除xs:annotation元素,其他两种类型的元素将随之删除。