1

XSD から Java クラスを生成しました。プレフィックス名前空間を使用して JAXB クラスからマーシャリングしたいと考えています。

ここに私が持っているものがあります

<?xml version="1.0" encoding="UTF-8"?>  
<schema xmlns="http://www.w3.org/2001/XMLSchema"  
targetNamespace="http://www.example.org/event"  
        xmlns:tns="http://www.example.org/event"  
        elementFormDefault="qualified"> 
<element name="Events" type="tns:EventsType"></element>  
<complexType name="EventsType">  
<sequence>  
<element name="Event" type="tns:inputFlowEventType" maxOccurs="unbounded" minOccurs="1"></element>  
</sequence></complexType>  
<complexType name="inputFlowEventType">  
<sequence>  
<element name="DISTRIBUTOR_ID" minOccurs="1" maxOccurs="1">  
<simpleType><restriction base="string"><maxLength value="17"></maxLength></restriction></simpleType>  
</element>  
</sequence>  
</complexType>  
</schema>

そして私はこれを持っています

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  <Events xmlns="http://www.example.org/event"><Event><DISTRIBUTOR_ID>6</DISTRIBUTOR_ID></Event></Events>

これの代わりに

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  <tns:Events xmlns="http://www.example.org/event">    <tns:Event><tns:DISTRIBUTOR_ID>6</tns:DISTRIBUTOR_ID></tns:Event></tns:Events>

誰かが何が間違っているかを知ることができますか?

ありがとう

4

1 に答える 1

0

2つのドキュメントは、名前空間の資格に関して同等です。1つ目はデフォルトの名前空間を指定し、2つ目はプレフィックス付きの名前を宣言します。使用されるプレフィックスを制御したい場合、答えは使用しているJAXB実装によって異なります。MOXyは、@XmlSchemaアノテーション内で宣言されたプレフィックスを使用します。JAXB RIにはNamespacePrefixMapper拡張機能があります(MOXyでもサポートされています)。

于 2012-05-21T15:18:28.720 に答える