首先我讀了link text,它並沒有解決我的問題。如何擺脫class屬性並使用XStream執行我自己的轉換?
我使用帶混疊的XStream。
條件是一個接口與幾個不同的實現。我想刪除類屬性。我知道當實現類不明確時,XStream使用類屬性,並且我可以爲最多實現類之一設置別名。我想一起刪除class屬性,並使用type屬性加上其他子元素的存在來確定實現類。這可能嗎?
這裏是XML我目前:
<NextDestinations>
<Connector>
<DestinationId>2</DestinationId>
</Connector>
<Connector>
<DestinationId>3</DestinationId>
<condition class="com.orchestral.rhapsody.configuration.filter.condition.JavaScriptCondition" type="JAVASCRIPT">
...
</condition>
</Connector>
<Connector>
<DestinationId>4</DestinationId>
<condition class="com.orchestral.rhapsody.configuration.filter.condition.MessageTypeCondition">
<type>CONDITIONAL</type>
...
</condition>
</Connector>
<Connector>
<DestinationId>5</DestinationId>
<condition class="com.orchestral.rhapsody.configuration.filter.condition.MessageTypeCondition">
<type>CONDITIONAL</type>
...
</condition>
</Connector>
<Connector>
<DestinationId>6</DestinationId>
<condition class="com.orchestral.rhapsody.configuration.filter.condition.PropertyCondition">
<type>CONDITIONAL</type>
...
</condition>
</Connector>
<Connector>
<DestinationId>7</DestinationId>
<condition class="com.orchestral.rhapsody.configuration.filter.condition.FieldCondition">
<type>CONDITIONAL</type>
...
</condition>
</Connector>
<noMatchDestination>8</noMatchDestination>
<errorDestination>9</errorDestination>
</NextDestinations>
這裏是我想要的XML:
<NextDestinations>
<Connector>
<DestinationId>1</DestinationId>
</Connector>
<Connector>
<DestinationId>2</DestinationId>
<condition type="JAVASCRIPT">
...
</condition>
</Connector>
<Connector>
<DestinationId>3</DestinationId>
<condition type="CONDITIONAL">
...
</condition>
</Connector>
<Connector>
<DestinationId>4</DestinationId>
<condition type="CONDITIONAL"
...
</condition>
</Connector>
<Connector>
<DestinationId>5</DestinationId>
<condition type="CONDITIONAL">
...
</condition>
</Connector>
<Connector>
<DestinationId>6</DestinationId>
<condition type="CONDITIONAL">
...
</condition>
</Connector>
<Connector>
<DestinationId>7</DestinationId>
<condition type="CONDITIONAL"
...
</condition>
</Connector>
<noMatchDestination>8</noMatchDestination>
<errorDestination>9</errorDestination>
</NextDestinations>