我需要比较各种 xsd
文件中包含的类型列表。有数百种类型,因此我想将类型的名称转换为文本格式,以便我可以使用其他软件比较数百个元素的列表。是否有一个简单、免费的工具可以仅提取 xsd
文件中所有类型的名称?
我正在使用eclipse
和java
。 eclipse xsd 设计 View
显示类型名称,但不允许您以文本格式将名称提取到 Windows 剪贴板中以便在其他应用程序中使用。
最佳答案
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>
</xsl:text>
<xsl:apply-templates select="node()"/>
</xsl:template>
<xsl:template match="xsd:complexType">
<xsl:value-of select="@name"/><xsl:text>
</xsl:text>
<xsl:apply-templates select="node()"/>
</xsl:template>
</xsl:stylesheet>
您甚至可以修改它以指示哪些类型是简单的,哪些类型是复杂的。
您可以通过命令行处理器(例如 xsltproc
)使用该样式表来处理您的 XSD,或者围绕 Java 的内置 XSLT 引擎编写您自己的包装器来执行相同的操作也非常容易工作。
关于java - 从 xsd 文件导出类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26918237/