名前空間なしXML非整列化することができますJAXBは:どのように私は、XMLファイル持って
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object>
<str>the type</str>
<bool type="boolean">true</bool>
</object>
をそして私は、私はこれを行うことができますどのように
@XmlRootElement(name="object")
public class Spec {
public String str;
public Object bool;
}
の下クラスのオブジェクトにそれを非整列化したいです?名前空間を指定しない限り(下記参照)、動作しません。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object>
<str>the type</str>
<bool xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:boolean">true</bool>
</object>
感謝。私は名前空間を持つことでうまくいく。しかし、XMLに名前空間を持たせることはできません(devユーザーに直面するため)が、Javaクラスの注釈でその情報を保持することで、jaxbがXMLを解析するときに "type"と認識し、 "aha、 Javaクラス宣言に従って名前空間 'xsi'の "。 "xs:boolean"と同じです。私は何を言っているのか見ていますか?それともまだできないのですか?私たちの開発者のユーザーはこのようなXML宣言を作成し、それらをJavaに非マーシャルする必要があるため、これが必要です。 – Andrey
@Andrey - あなたはこの作業を行うことができます。以下は、非マーシャルのためにできるアプローチです。 –
こんにちは。 "type"属性のネームスペースを削除するとうまくいきました。ありがとうございます。でも、 "xs:boolean"という属性の値の "xs"名前空間宣言を削除するにはどうすればいいですか?私はいくつかのStreamReaderDelegateメソッドをオーバーライドして演奏しましたが、成功しませんでした。 – Andrey