Java中的XSD到DBMS

时间:2011-03-20 23:28:49

标签: java sql xml xsd xsom

我一直在寻找3天但我找不到解决方案。我想解析XSD文件以在java中创建mySql表。我不想用xsd来验证xml文件。< / p>

首先,我使用了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>

等待你的帮助。

感谢。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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