質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SOAP

SOAP(Simple Object Access Protocol)はウェブサービス実装においての構造化された情報をやり取りするためのプロトコル規定です。

Q&A

1回答

2935閲覧

OMElement.addAttributeによるHTMLエンコードについて

退会済みユーザー

退会済みユーザー

総合スコア0

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SOAP

SOAP(Simple Object Access Protocol)はウェブサービス実装においての構造化された情報をやり取りするためのプロトコル規定です。

0グッド

0クリップ

投稿2014/12/18 02:03

org.apache.axiom.om.OMElementを用いてSOAP連携するためのXMLを作成しています。

OMElement.addAttributeにて値がHTMLエンコードしていますが、
「>」が変換されずエラーとなっています。

OMElementのバグでしょうか、それとも何か設定等足りませんでしょうか。

ご教授いただきたくよろしくお願いいたします。

ライブラリVer:axiom-api-1.2.13.jar

lang

1//サンプルソース 2package test; 3 4import junit.framework.TestCase; 5 6import org.apache.axiom.om.OMAbstractFactory; 7import org.apache.axiom.om.OMElement; 8import org.apache.axiom.om.OMFactory; 9 10public class TrialAPITest extends TestCase { 11 12 public void testSub() { 13 OMFactory omFactory = OMAbstractFactory.getOMFactory(); 14 OMElement sendmail = omFactory.createOMElement("mail", null); 15 16 sendmail.addAttribute("from", "\"あいうえお\"<test@testtest.jp>", null); 17 sendmail.addAttribute("to", "\"かきくけこ\"<test2@testtest.jp>", null); 18 19 java.lang.System.out.println(sendmail.toString()); 20 } 21} 22

lang

1*************************************************************************************** 2実行結果 3--------------------------------------------------------------------------------------- 4 5<mail from="&quot;あいうえお&quot;&lt;test@testtest.jp>" to="&quot;かきくけこ&quot;&lt;test2@testtest.jp>" /> 6 7**************************************************************************************

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Mavenを使ってライブラリー依存関係を設定すると、axiomの実装ライブラリーaxiom-impl-1.2.13.jarが依存しているライブラリーにwstx-asl-3.2.9.jarが含まれていて、その中のcom.ctc.wstx.sw.BufferingXmlWriterがタグの属性(OMAttribute)を文字列に変換しているようなのですが、そこでは、>&gt;に変換していません。

下記ページのコードを見ていただくと分かります。

GC: BufferingXmlWriter - com.ctc.wstx.sw.BufferingXmlWriter (.java) - GrepCode Class Source

なぜこのようになっているのかは不明ですが、ライブラリーのバグの可能性がありますね。最新版の4.4.1(Sep 11, 2014リリース)でも直っていないようです。なお、wstxはバージョン4からはwoodstoxという名前になっています。


(追記)

手動で最低限のライブラリーaxiom-api-1.2.13.jar,axiom-impl-1.2.13.jar,commons-logging-1.1.1.jarだけをクラスパスに通して実行してみたところ、XML出力処理には(JDKのrt.jarに含まれる)com.sun.xml.internal.stream.writers.XMLStreamWriterImplが使われました。この場合は>&gt;に変換されます。

GC: XMLStreamWriterImpl - com.sun.xml.internal.stream.writers.XMLStreamWriterImpl (.java) - GrepCode Class Source

投稿2014/12/19 17:47

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問