2

オブジェクトをXMLにマーシャリングしようとしていますが、名前空間プレフィックスに問題があります(プレフィックスは必要ありません)。

生成されたクラスをカスタマイズするためにbindigsファイルを使用しています。生成されたpackage-info.javaファイルには、次のものが含まれています。

@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.test.com", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = {
@javax.xml.bind.annotation.XmlNs(namespaceURI = "http://www.test.com", prefix = "")})
package com.test;

したがって、プレフィックスは「」に設定されますが、XMLが生成されると、生成されたプレフィックスがあります。プレフィックスに別の値(空の文字列とは異なる)を使用すると、XMLは正しいプレフィックスで生成されます。

4

2 に答える 2

2

最新のJAXBでは、QUALIFIEDをXmlSchemaアノテーションのelementFormDefaultフィールドに設定する必要があります。このような:

@XmlSchema (
    elementFormDefault= XmlNsForm.QUALIFIED,
    ...)

それ以外の場合、JAXBは自動プレフィックス(ns1、ns2、...)を追加します

于 2014-06-09T02:43:55.847 に答える
0

JAXB (JSR-222)@XmlSchema実装は、アノテーション で指定されたプレフィックスを使用することを保証しません。EclipseLink JAXB(MOXy)、最近のバージョンのJAXBRIも同様です。

JAXB RIは、NamespacePrefixMapper使用されるプレフィックスをより細かく制御できるようにMOXyでサポートされる拡張機能を提供します。

詳細については

于 2012-10-09T13:34:27.913 に答える