Я пытаюсь удалить пустой xmlns из запроса xml, сгенерированного из заглушки, который я автоматически сгенерировал из wsdl с помощью мастера оси.Как удалить xmlns = "" из запроса xml
Мастер оси создает класс запроса, в котором есть:
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(Request.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("http://myNamespace"));
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("destinationIdsInfo");
elemField.setXmlName(new javax.xml.namespace.QName("", "DestinationIdsInfo"));//IF I REMOVE THIS EVERY ELEMENT INSIDE THAT TAG WILL HAVE xmlns="".
elemField.setXmlType(new javax.xml.namespace.QName("", "DestinationIdInfo"));
elemField.setMinOccurs(0);
elemField.setNillable(false);
elemField.setItemQName(new javax.xml.namespace.QName("", "DestinationIdInfo"));
....
}
Это создает мне XML, как это:
...
<DestinationIdsInfo xmlns="">
<DestinationIdInfo id="xxxx"/>
</DestinationIdsInfo>
...
Но мне нужно
<DestinationIdsInfo>
<DestinationIdInfo id="xxxx"/>
</DestinationIdsInfo>
Как может я решать??
Если я укажу URI пространства имен, это будет отображаться в моем запросе xml, и я не нуждаюсь в нем (владельцы веб-сервисов не хотят, чтобы это пространство имен в запросе) – JackTurky
@JackTurky: Нет, это не должно - re уже * наследует * это пространство имен из одного из входящих элементов. Найдите элемент 'xmlns =" http: // myNamespace "в одном из входящих в XML элементов. Если вам не нужны пространства имен * в любом месте *, вы должны избавиться от всех из них. –
Ты знаешь, что ты лучший? :) Моя проблема заключалась в том, что ось генерирует мне классы с различным пространством имен, поэтому единственное, что я делаю, это равномерное пространство имен во всем мире, и теперь весь элемент xml наследует пространство имен от корневого элемента :) Спасибо youuu !!!!!!!!! – JackTurky