使用Java将XSD转换为树结构 [英] Convert XSD to tree structure with Java

查看:362
本文介绍了使用Java将XSD转换为树结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想生成XML模式的文档。

I want to generate documentation for XML schemas.

我的目标是分析xsd文件并将其显示为树结构(解析所有复杂/匿名类型)。此外,我需要用它们的基数(由模式定义)注释该树中的所有项目。

My goal is to analyze the xsd file and to display it as a tree structure (with all complex / anonymous types resolved). Furthermore I need to annotate all items in that tree with their cardinality (as defined by the schema).

以下小例子可能有助于澄清我的问题。

The following small example might help to clarify my problem.

a)xsd文件:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="client" type="clientType" />
    <xs:complexType name="clientType">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element name="first_name"/>
            <xs:element name="last_name"/>
            <xs:element name="address" type="addressType" 
                        minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="addressType">
        <xs:sequence>
            <xs:element name="street"/>
            <xs:element name="number" minOccurs="0" maxOccurs="1"/>
            <xs:element name="city"/>
            <xs:element name="zipcode"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

b)输出我想看:

client [1]
  first_name [1]
  last_name [1]
  address [1..n]
    street [1]
    number [0..1]
    city [1]
    zipcode [1]

有人知道基于java的解决方案吗?最好是基于 Eclipse Schema Infoset ,但我也很乐意使用其他库。

Does anybody know a java based solution for this problem? Preferably based on Eclipse Schema Infoset, but I'm happy to use other libraries as well.

推荐答案

XSOM 可以将XSD规范化为易于理解的数据结构,您可以循环并打印出来。

XSOM can normalize an XSD into a comprehensible data structure that you can loop over and print out.

这篇关于使用Java将XSD转换为树结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆