Change JAXB xs: any processContents attribute using a binding file

There is xs in the WSDL file: any element I want to override:

<xs:element minOccurs="0" maxOccurs="1" name="GetPermissionCollectionResult">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:any/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

To:

<xs:element minOccurs="0" maxOccurs="1" name="GetPermissionCollectionResult">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:any processContents="skip"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Ultimately, what I'm doing is using JAXB to generate annotated Java code from WSDL. And for xs: of any element this is generated:

@XmlAnyElement(lax = true)

Instead, I want:

@XmlAnyElement(lax = false)

The WSDL file is not generated by me, so I cannot just make changes to the file. Is there a way to use the JAXB binding file to get the same effect?

I looked at using jaxb: property and jaxb: class elements, but none of them work if I want to do.

+4
source share

Source: https://habr.com/ru/post/1525480/


All Articles