2014-11-13 38 views
0

我需要比较各种xsd文件中包含的类型列表。有数百种类型,所以我想将这些类型的名称转换为文本格式,以便我可以使用其他软件比较数百个元素的列表。是否有一个简单的免费工具可以提取xsd文件中所有类型的名称?从xsd文件导出类型列表

我正在使用eclipsejavaeclipse xsd design view显示类型的名称,但不允许您以文本格式将名称提取到Windows剪贴板中以供其他应用程序使用。

+0

您是否在寻找XSD中声明的*类型,或者其中使用了*的类型? –

+0

@JohnBollinger我正在寻找文件中声明的类型,因为在这种情况下跟踪会更简单。在这种情况下,其中使用的类型应该自己照顾自己。 – CodeMed

回答

1

XSLT转换只是这项工作的工具。样式表可能如下所示:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

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

    <xsl:template match="xsd:simpleType"> 
    <xsl:value-of select="@name"/><xsl:text>&#xa;</xsl:text> 
    <xsl:apply-templates select="node()"/> 
    </xsl:template> 

    <xsl:template match="xsd:complexType"> 
    <xsl:value-of select="@name"/><xsl:text>&#xa;</xsl:text> 
    <xsl:apply-templates select="node()"/> 
    </xsl:template> 

</xsl:stylesheet> 

您甚至可以修改它以指出哪些类型很简单,哪些类型很复杂。

您可以使用该样式表通过命令行处理程序(如xsltproc)处理您的XSD,或者使用Java的内置XSLT引擎编写自己的包装来完成相同的工作非常容易。

+0

+1,并感谢您对此进行调查。我将等待回顾,直到我有时间在网络上对这些概念进行一些研究。对于直接的问题,我只是最终在eclipse中打开了两个窗口,所以我可以通过对齐窗口并排查看xsd设计视图中的类型列表。但是你的方法看起来更复杂,所以我会在以后热切地阅读它。 – CodeMed