自分用のお土産

こんにちは

VB2005でXML文書をアプリを作成指定しています。
XML文書を読み込んでバリデーションをかけて、OKであれば処理続けていくプログラムです。

実際の業務でバリデーションのために使用する
XMLSchemaをもらったのですが、階層が深くなかなか複雑なようで、
ファイルの数は100個近くあります。

プログラムのテストのために、指定のXMLSchema全ての構造体を反映したXMLファイルを作成したいのですが、
手動ではかなり厳しいです。

ちなみに、メインとなるXSDファイルがありますが、
その中では、子要素となる構造を定義したXSDファイルを
importやincludeしているだけです。

このようなXSDファイルを指定して、全ての構造を網羅したXMLファイルを作成してくれるツールは存在しますでしょうか?
もしくは、そのようなツールを作成するプログラムのサンプルでも結構です。

以上、よろしくお願いいたします。

A 回答 (3件)

昔 XML Schema を扱う仕事をしていた時に,JAXBを使って XML Schema からJavaのコードを自動生成した記憶があるのですが…。



http://www.stackasterisk.jp/tech/java/jaxb01_01. …



http://www.atmarkit.co.jp/fxml/rensai2/xmltool02 …

は参考にならないでしょうか?

後者ではMarshallerを使ってXML文書を出力する例も紹介しているので,もしかしたらお役に立つかもしれません。

ただ,

> 全ての構造を網羅したXMLファイルを作成してくれる

これは無理だと思います。XML Schema には繰り返しやoptionもあるので,一つの文書で全てのパターンを網羅することは無理だと思います。また,複数の文書であったとしても,例えば繰り返しを何回行うかには無限のパターンがあり得るため,やはり全てのパターンを網羅することは難しいと思います。

ただ,上述のJAXBを使えば,その手間はかなり減らせるかもしれません。

JAXBはJWSDPの一部なので,参考URLでダウンロードできます。

参考URL:http://java.sun.com/xml/downloads/jaxb.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
JAXBは初めて聞きました・・・。勉強して試してみます。

やりたいことは、XML Schema に定義されている全てのElementとAttributeの
タグ名称と親子関係を表すXMLファイルを作りたいということで、
繰返しの箇所は発生回数一回として扱いたいです。

これも無理でしょうか・・・
無理でしたら、教えていただいたサイトを参考に、一度大まかな全体の構成を作成し、
最終的には人の手でチェックしながら修正していく、と言うことにするしかないのかもしれないですね

ありがとうございました。

お礼日時:2007/03/05 10:14

No.2です。



> やりたいことは、XML Schema に定義されている全てのElementとAttributeの
> タグ名称と親子関係を表すXMLファイルを作りたいということで、
> 繰返しの箇所は発生回数一回として扱いたいです。
> これも無理でしょうか・・・

スキーマ定義の中に xsd:choice が存在する場合,いずれにせよファイル1つの作成で済ませることは無理だと思いますが,全ての要素の出現回数を1に固定してよいのであれば,有限個のファイルで収めることは可能だと思います。

なお,JAXBはあくまでJavaのソースを自動生成してくれるツールなので,実際にXMLファイルを吐くコードは自分で書く必要があります。その手間がどれくらいになるのかはスキーマの複雑さにもよりますが,人力でXML Schemaをパースするよりは間違いが少なくなり,手間も省けると思います。

例えば,XHTMLのようなかなり複雑な構造でも,JAXBを使って文書生成している人が居るようなので,

http://www.ruimo.com/2006/03/03/1141390674449.html

試してみる価値はあると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
JAXBを使ってやってみようと思ったのですが、
今回作ろうとしているXMLSchemaからXML文書を作成するツールはいろんなところで使われるようで、
そのマシンにJAVAがインストールされていることを前提にするのはNGとのことでした・・・
ですので、他の方法を探してみます。

せっかく紹介してくださったのにすみません。
ありがとうございました。

お礼日時:2007/03/07 12:01

XSDもXMLの一種でしょ?


http://www.google.co.jp/search?q=XSD%20XML&hl=ja …

何ならxsltで整形できるんじゃない?
処理はそれこそ今時のxslt使えるブラウザで。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
お礼が遅くなり申し訳ありません。
XML⇒XMLの変換と考えればよいのでは、と言うことですよね。
考えてみます。ありがとうございました。

お礼日時:2007/03/05 09:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!