XSD в СУБД на Java - PullRequest
       21

XSD в СУБД на Java

1 голос
/ 21 марта 2011

Я искал 3 дня, но не могу найти решение. Я хочу проанализировать XSD-файл для создания таблиц mySql в java. Кстати, я не хочу проверять xml-файлы с помощью xsd.

Во-первых, я использовал 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 ]

2 голосов
/ 21 марта 2011

XSD - это XML, поэтому подойдет любой XML-парсер. Используйте тот, который встроен в JDK, или, возможно, вам будет проще использовать JDOM или DOM4J.

Как только вы проанализируете XSD, вам придется сгенерировать операторы SQL DDL (например, CREATE TABLE) для MySQL. Это двухэтапный процесс для вас.

XSD и XML являются иерархическими; Базы данных SQL являются реляционными. Вам, вероятно, придется проделать дополнительную работу со схемой MySQL, чтобы сделать ее пригодной для использования (например, первичные ключи, индексы и т. Д.)

0 голосов
/ 21 марта 2011

Для разбора XSD-файла я бы рекомендовал использовать JDOM , что очень просто и интуитивно понятно.Вот хорошее чтение на нем.Вставка данных в SQL должна быть тривиальной с помощью операторов SQL.

...