
こんにちは
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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サイトマップにサブドメインを...
-
0バイトのテキストファイル
-
VBAで、JPG写真の撮影日時を読...
-
BASP21のファイルアップロード...
-
Eclipseで検索ができなくなった
-
【Excel VBA】取り込んだファイ...
-
VB2008 iniファイルの全セクシ...
-
HTMLテキストリンクでExcelファ...
-
Javaのファイルダウンロードに...
-
画像ファイルに拡張子がjpgのフ...
-
main関数のコマンドライン引数...
-
C++によるファイル送受信プログ...
-
CSVファイルの時刻の形式について
-
ATTファイルってどうやって開け...
-
accessでクエリをExcelにエクス...
-
VB(VBA)で、バイナリデータを使...
-
Excel VBAが徐々に遅くなる
-
WshShellから起動したbat(ftp)...
-
テキストファイルの一部分を抽...
-
ODBC経由のDBアクセスによる処...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0バイトのテキストファイル
-
【Excel VBA】取り込んだファイ...
-
Eclipseで検索ができなくなった
-
VBAで、JPG写真の撮影日時を読...
-
HTMLテキストリンクでExcelファ...
-
VB6.0のメモリリークについて
-
Appletにて入力文字のファイル...
-
C++.NET 2003 「空のドキュメ...
-
VB2008 iniファイルの全セクシ...
-
windows 環境でのファイル操作...
-
dllって?
-
パスワード設定のタグについて
-
ファイルを取得するC#のプロ...
-
main関数のコマンドライン引数...
-
Accessで一覧を表示するWebペー...
-
ファイル作成日時と更新日時を...
-
【VBA】印刷マクロのループ処理...
-
携帯電話への動画配信
-
ファイル内容を比較する方法
-
Javaのファイルダウンロードに...
おすすめ情報