java - Java 中的 XSD 到 DBMS

标签 java sql xml xsd xsom

我已经搜索了 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>

等待您的帮助。

谢谢。

最佳答案

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

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

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

关于java - Java 中的 XSD 到 DBMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5372346/

相关文章:

php - 如何提取和导入维基百科页面?

java - 使用 Xerces 忽略奇怪的解析错误

java - 为什么 Json 要求 Junit 测试无参数构造函数?

mysql - 根据相似字段,使用同一表中另一行的数据更新行

c# - sql server 从匹配的日期时间中选择最小值

android - 如何在Android中制作GPX文件

java - launch() 需要时间来运行

java - 用子类替换 Spring Bean 时出错

java - 在mapreduce程序中使用静态变量

sql - 何时在 Oracle 中限定对象的模式名称