Forums: Open Discussion (Thread #18116)

XSDを使わない設定 (2008-03-25 10:35 by nazozen #35743)

続けて質問ですが、よろしくお願いいたします。

クライアントからXMLを受け取ったとき、XSDを使ってチェックができるが、

<bean id="xmlSchemaValidatorDataBinderCreator"
class="jp.terasoluna.fw.web.rich.springmvc.bind.creator.XMLServletRequestDataBinderCreator">
<property name="oxmapper" ref="oxmapper"/>
<property name="schemaValidator" ref="schemaValidator"/>
</bean>

この「schemaValidator」をコメントアウトするとチェックを行わない、とあります。
そこで、コメントアウトしてXSDファイルをなくしリクエストを送ってみたのですが、「バインド関連のエラーです。」と表示されます。
これはチェックは行わないがXSDは必須だという事でしょうか?XSDを記述しない方法はありますでしょうか?

Reply to #35743×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: XSDを使わない設定 (2008-03-25 12:01 by yggd #35745)

XMLスキーマによる検証が不要でしたら、xsd ファイルは必要ありません。
断片的なエラーメッセージのため、原因は不明ですが
XML検証時ではなく、XMLとJavaBeans へのマッピング時に、なんらかの変換エラーが発生した恐れがあります。

クライアントから送信された XML と、JavaBeans の
構成、およびマッピング定義ファイルについて今一度ご確認いただき、
その上ご不明な点がありましたら、例外のスタックトレースログをご提供くださればと存じます。

# ただし、プロジェクト内情報がありましたら、
# 適宜マスキングしてください。
Reply to #35743

Reply to #35745×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: XSDを使わない設定 (2008-03-25 13:49 by nazozen #35746)

早速のご回答、ありがとうございます。

xsd不要とのご回答を受け、再度トライしてみましたところ、うまく行きました。参考までに、当方での手順を記載しておきます。

ベースになるのはRich版チュートリアルです。
1.UserBean.xsdを別名にする。
2.Tomcat再起動後、例えば<ID>項目にABCを入れて送信。
3.<ID>には数値が必要、とのエラー。
4.結果的には、UserBean.xsdが別のフォルダに存在していたため、そちらを参照してエラーチェックされていたと思われる。
5.全てのUserBean.xsdを削除もしくはリネーム。
6.Tomcat再起動すると、スキーマファイルが見つからないとのエラー。
7.tutorial-servlet.xml中の
<property name="schemaValidator" ref="schemaValidator"/>
の部分をコメントアウトすることで、解消。
Reply to #35743

Reply to #35746×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login