Android에서 Java 객체로부터 XML을 생성해야합니다. XML 노드는 확실한 순서 여야합니다.Android에서 XStream을 사용할 때 특수 효과 주문 필드는 어떻게 사용하나요?
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding" xmlns:cwmp="urn:dslforum-org:cwmp-1-0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header>
<ID soap:mustUnderstand="1">
<string>00001</string>
</ID>
</soap:Header>
<soap:Body>
<cwmp:Inform>
<DeviceId>
<Manufacturer>Conexant</Manufacturer>
<OUI>002615</OUI>
<ProductClass>ADSL2+ IAD</ProductClass>
<SerialNumber>00261559a496</SerialNumber>
</DeviceId>
<Event soapenc:arrayType="cwmp:EventStruct[1]">
<EventStruct>
<EventCode>0 BOOTSTRAP</EventCode>
<CommandKey></CommandKey>
</EventStruct>
</Event>
<MaxEnvelopes>0</MaxEnvelopes>
<CurrentTime>2013-06-07 07:16:54.128 UTC</CurrentTime>
<RetryCount>0</RetryCount>
<ParameterList soapenc:arrayType="cwmp:ParameterValueStruct[1]">
<ParameterValueStruct>
<name>InternetGatewayDevice.DeviceInfo.SpecVersion</name>
<value>1.0</value>
</ParameterValueStruct>
</ParameterList>
</cwmp:Inform>
</soap:Body>
</soap:Envelope>
나는이 문제를 더 조사했습니다
여기<soap:Envelope xmlns:cwmp="urn:dslforum-org:cwmp-1-0"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<cwmp:Inform>
<CurrentTime>2013-06-07 07:11:20.561 UTC</CurrentTime>
<DeviceId>
<OUI>002615</OUI>
<Manufacturer>Conexant</Manufacturer>
<ProductClass>ADSL2+ IAD</ProductClass>
<SerialNumber>00261559a496</SerialNumber>
</DeviceId>
<Event soapenc:arrayType="cwmp:EventStruct[1]">
<EventStruct>
<CommandKey></CommandKey>
<EventCode>0 BOOTSTRAP</EventCode>
</EventStruct>
</Event>
<ParameterList soapenc:arrayType="cwmp:ParameterValueStruct[1]">
<ParameterValueStruct>
<name>InternetGatewayDevice.DeviceInfo.SpecVersion</name>
<value>1.0</value>
</ParameterValueStruct>
</ParameterList>
<MaxEnvelopes>1</MaxEnvelopes>
<RetryCount>0</RetryCount>
</cwmp:Inform>
</soap:Body>
<soap:Header>
<ID soap:mustUnderstand="1">
<string>00001</string>
</ID>
</soap:Header>
</soap:Envelope>
내가이 원하는 무엇을 : 여기 (알파벳 순서에 따라 이러한 필드)를 얻었다 것입니다. 그리고 Xstream에서 필드를 처리하는 것으로 나타났습니다. Android에서 잘못된 순서입니다. Xstream은 Java 프로젝트에서 필드를 잘 처리합니다.
@XStreamAlias("cwmp:Inform")
public class Inform {
@XStreamAlias("DeviceId")
private DeviceIdStruct deviceId;
@XStreamAlias("Event")
private EventList event;
@XStreamAlias("MaxEnvelopes")
private int maxEnvelopes;
@XStreamAlias("CurrentTime")
private Date currentTime;
@XStreamAlias("RetryCount")
private int retryCount;
@XStreamAlias("ParameterList")
private ParameterValueList parameterList;
}
@ Ігар Цімошка 도와 주시겠습니까? – Folee