1

我已经搜索了 3 天,但找不到解决方案。我想解析 XSD 文件以在 java 中创建 mySql 表。顺便说一下,我不想用 xsd 验证 xml 文件。

首先,我使用了 XSOM,但无法修复错误 NoClassDefFoundError。我想我无法设置库。有什么东西不见了。如果你能给我必要的整个图书馆,它也许可以修复。

其次,我尝试使用 org.eclipse.xsd 库,但我无法再次使用它。我不知道如何使用这些类来解析 xsd 并获取其属性、元素等,然后创建 sql 表。

最后,我也无法解决 SAXParser 的问题。

——顺便说一句,打算做的是:

通过使用这个模式,我将创建一个数据库表,

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Table" type="TableType"/>
<xs:complexType name="TableType">
<xs:sequence>
<xs:element name="Rows" type="Rows"/>
</xs:sequence>
<xs:attribute fixed="Students" name="name" type="xs:string"/>
<xs:attribute fixed="id" name="Primarykey" type="xs:string"/>
</xs:complexType>
<xs:complexType name="Rows">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Row" type="RowType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RowType">
<xs:sequence>
<xs:element name="id" type="xs:integer"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="surname" type="xs:string"/>
<xs:element name="department" type="xs:string"/>
<xs:element name="year" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

然后,

通过使用这个 xml,我将插入数据库,

<?xml version="1.0" encoding="UTF-8"?>
<Table name="Students" Primarykey= "id">
<Rows>
<Row>
<id>100000</id>
<name>Ali</name>
<surname>Yilmaz</surname>
<department>CENG</department>
<year>1</year>
</Row>
<Row>
<id>100001</id>
<name>Deniz</name>
<surname>Bayraktar</surname>
<department>EE</department>
<year>3</year>
</Row>
</Rows>
</Table>

等待您的帮助。

谢谢。

4

2 回答 2

2

XSD 是 XML,因此任何 XML 解析器都可以。使用内置于 JDK 中的那个,或者您可能会发现 JDOM 或 DOM4J 更易于使用。

解析完 XSD 后,您必须为 MySQL 生成 SQL DDL(例如 CREATE TABLE)语句。这对你来说是一个两步的过程。

XSD 和 XML 是分层的;SQL 数据库是关系型的。您可能需要在 MySQL 模式上做更多的工作以使其可用(例如,主键、索引等)

于 2011-03-20T23:37:10.700 回答
0

对于解析 XSD 文件,我建议使用非常简单直观的JDOM 。这是一个很好的阅读。使用 SQL 语句将数据插入 SQL 应该很简单。

于 2011-03-21T01:55:23.557 回答