1

3日間検索しましたが、解決策が見つかりません。XSDファイルを解析してJavaでmySqlテーブルを作成したいのですが、xsdを使用してxmlファイルを検証したくありません。

まず、XSOMを使用しましたが、エラーNoClassDefFoundErrorを修正できません。ライブラリを設定できなかったと思います。何かが足りませんでした。必要なライブラリ全体を教えていただければ、修正できるかもしれません。

次に、org.eclipse.xsdライブラリを使用しようとしましたが、再度使用できませんでした。クラスを使用してxsdを解析し、その属性や要素などを取得してからSQLテーブルを作成する方法を見つけることができませんでした。

最後に、SAXParserの問題も修正できませんでした。

-ちなみに、やろうとしていることは次のとおりです。

このスキーマを使用して、DBテーブルを作成します。

<?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を使用して、DBに挿入します。

<?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 など) ステートメントを生成する必要があります。これは 2 段階のプロセスです。

XSD と XML は階層的です。SQL データベースはリレーショナルです。MySQL スキーマを使用できるようにするには、おそらくさらに多くの作業を行う必要があります (主キー、インデックスなど)。

于 2011-03-20T23:37:10.700 に答える
0

XSD ファイルの解析には、非常に簡単で直感的なJDOMの使用をお勧めします。これについては、よく読んでください。SQL へのデータの挿入は、SQL ステートメントを使用して簡単に行う必要があります。

于 2011-03-21T01:55:23.557 に答える