![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは
VB2005でXML文書をアプリを作成指定しています。
XML文書を読み込んでバリデーションをかけて、OKであれば処理続けていくプログラムです。
実際の業務でバリデーションのために使用する
XMLSchemaをもらったのですが、階層が深くなかなか複雑なようで、
ファイルの数は100個近くあります。
プログラムのテストのために、指定のXMLSchema全ての構造体を反映したXMLファイルを作成したいのですが、
手動ではかなり厳しいです。
ちなみに、メインとなるXSDファイルがありますが、
その中では、子要素となる構造を定義したXSDファイルを
importやincludeしているだけです。
このようなXSDファイルを指定して、全ての構造を網羅したXMLファイルを作成してくれるツールは存在しますでしょうか?
もしくは、そのようなツールを作成するプログラムのサンプルでも結構です。
以上、よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
昔 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
回答ありがとうございます。
JAXBは初めて聞きました・・・。勉強して試してみます。
やりたいことは、XML Schema に定義されている全てのElementとAttributeの
タグ名称と親子関係を表すXMLファイルを作りたいということで、
繰返しの箇所は発生回数一回として扱いたいです。
これも無理でしょうか・・・
無理でしたら、教えていただいたサイトを参考に、一度大まかな全体の構成を作成し、
最終的には人の手でチェックしながら修正していく、と言うことにするしかないのかもしれないですね
ありがとうございました。
No.3
- 回答日時:
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
試してみる価値はあると思います。
ありがとうございます。
JAXBを使ってやってみようと思ったのですが、
今回作ろうとしているXMLSchemaからXML文書を作成するツールはいろんなところで使われるようで、
そのマシンにJAVAがインストールされていることを前提にするのはNGとのことでした・・・
ですので、他の方法を探してみます。
せっかく紹介してくださったのにすみません。
ありがとうございました。
No.1
- 回答日時:
XSDもXMLの一種でしょ?
http://www.google.co.jp/search?q=XSD%20XML&hl=ja …
何ならxsltで整形できるんじゃない?
処理はそれこそ今時のxslt使えるブラウザで。
回答ありがとうございます。
お礼が遅くなり申し訳ありません。
XML⇒XMLの変換と考えればよいのでは、と言うことですよね。
考えてみます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで、JPG写真の撮影日時を読...
-
【Excel VBA】取り込んだファイ...
-
msgget()で指定するkey値について
-
【VBA】複数CSVの特定範囲を1つ...
-
MusicXMLファイル作り方教えて...
-
Eclipseで検索ができなくなった
-
ディレクトリのサイズの取得
-
エディットボックスの内容をテ...
-
プロパティファイルで日本語を扱う
-
[transformNode]メソッドについて
-
CSV名と同じシートを選択して取...
-
<input type="file" で初期値...
-
VBからのsqlの呼び出し方
-
VB6.0のメモリリークについて
-
インタープリンタとファイルコ...
-
accessでクエリをExcelにエクス...
-
ATTファイルってどうやって開け...
-
ファイルのチェックサムを改行...
-
CSVファイルの時刻の形式について
-
ストリームについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】取り込んだファイ...
-
0バイトのテキストファイル
-
VBAで、JPG写真の撮影日時を読...
-
Eclipseで検索ができなくなった
-
サイトマップにサブドメインを...
-
HTMLテキストリンクでExcelファ...
-
ファイル作成日時と更新日時を...
-
msgget()で指定するkey値について
-
ディレクトリのサイズの取得
-
【VBA】複数CSVの特定範囲を1つ...
-
VB2008 iniファイルの全セクシ...
-
CSV名と同じシートを選択して取...
-
main関数のコマンドライン引数...
-
C++.NET 2003 「空のドキュメ...
-
ファイル更新日取得
-
VB6.0のメモリリークについて
-
VBS ファイルマージ処理
-
2GB以上のファイルを扱う方法
-
<input type="file" で初期値...
-
JavaでPDFファイルに変換するに...
おすすめ情報