У меня проблема с проверкой XSD, так как отправляемый запрос не совместим со схемой xsd.Я исследовал его, но не смог найти причину такой проблемы.
Я получаю исключение ниже:
Caused By: oracle.xml.parser.v2.XMLParseException; lineNumber: 0; columnNumber: 0; Element 'AdditionalData' not expected. at oracle.xml.parser.v2.XMLError.flushErrors(XMLError.java:274) at oracle.xml.parser.v2.XMLElement.validateContent(XMLElement.java:3260) at oracle.xml.parser.v2.XMLElement.validateContent(XMLElement.java:3171) at oracle.integration.platform.blocks.mesh.MeshImpl.validateXML(MeshImpl
Ниже приведена схема UserData xsd.Здесь присутствует элемент AdditionalData, который вызывает указанное выше исключение.С отключенной проверкой мой сценарий использования работает нормально.
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xmlns.myapp.com/UserMngtApp/UserSrvc/UserData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.myapp.com/UserMngtApp/UserSrvc/UserData" xmlns:general="http://xmlns.myapp.com/UserMngtApp/UserSrvc/GeneralData" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jaxb:version="1.0" jaxb:extensionBindingPrefixes="xjc"> <xs:annotation> <xs:appinfo> <jaxb:schemaBindings> <jaxb:package name="myapp.main.requestdataws.webservicestubs.types"/> </jaxb:schemaBindings> </xs:appinfo> </xs:annotation> <xs:import namespace="http://xmlns.myapp.com/UserMngtApp/UserSrvc/GeneralData" schemaLocation="GeneralRequestData.xsd"/> <xs:element name="UserId" type="xs:string"/> <xs:element name="UserData" type="UserDataType"/> <xs:complexType name="UserDataType"> <xs:sequence> <xs:element name="usr_key" type="general:MultiValueType" nillable="true"/> <xs:element name="act_key" type="general:MultiValueType" nillable="true"/> <xs:element name="LastName" type="general:MultiValueType" nillable="true"/> <xs:element name="FirstName" type="general:MultiValueType" nillable="true"/> <xs:element name="MiddleName" type="general:MultiValueType" nillable="true"/> <!-- <xs:element name="FullName" type="general:MultiValueType"/> --> <xs:element name="DisplayName" type="general:MapValueType" nillable="true"/> <xs:element name="XellerateType" type="general:MultiValueType" nillable="true"/> <xs:element name="Status" type="general:MultiValueType" nillable="true"/> <xs:element name="Role" type="general:MultiValueType" nillable="true"/> <xs:element name="UserLogin" type="general:MultiValueType" nillable="true"/> <xs:element name="FullName" type="general:MapValueType" nillable="true"/> <xs:element name="UserManagerKey" type="general:MultiValueType"/> <xs:element name="AdditionalData" type="general:AdditionalDataType" maxOccurs="1000" nillable="true"/> </xs:sequence> </xs:complexType> </xs:schema>
И еще одна схема, на которую ссылается UserData:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xmlns.myapp.com/UserMngtApp/UserSrvc/GeneralData" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.myapp.com/UserMngtApp/UserSrvc/GeneralData" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jaxb:version="1.0" jaxb:extensionBindingPrefixes="xjc"> <xs:annotation> <xs:appinfo> <jaxb:schemaBindings> <jaxb:package name="myapp.main.requestdataws.webservicestubs.types"/> </jaxb:schemaBindings> </xs:appinfo> </xs:annotation> <xs:complexType name="MultiValueType"> <xs:sequence> <xs:element name="Value" type="xs:string" minOccurs="0" maxOccurs="1000" nillable="true"/> </xs:sequence> </xs:complexType> <xs:complexType name="AdditionalDataType"> <xs:sequence> <xs:element name="Value" type="xs:string" minOccurs="0" maxOccurs="1000" nillable="true"/> </xs:sequence> <xs:attribute name="Name" type="xs:string"/> </xs:complexType> <xs:complexType name="MapValueType"> <xs:sequence> <xs:element name="Key" minOccurs="0" maxOccurs="1000" nillable="true"> <xs:complexType> <xs:attribute name="Name" type="xs:string"/> <xs:attribute name="Value" type="xs:string"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:schema>
А ниже приведен запрос, который не выполняется с предоставленным выше исключением.
<?xml version="1.0" encoding="UTF-8"?><messages> <beneficiaryUserKey> <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="UserId"> <UserId xmlns="http://xmlns.myapp.com/UserMngtApp/UserSrvc/UserData">6</UserId> </part> </beneficiaryUserKey> <beneficiaryUserDetails> <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="UserData"> <ns8:UserData xmlns:ns8="http://xmlns.myapp.com/UserMngtApp/UserSrvc/UserData" xmlns="http://xmlns.myapp.com/UserMngtApp/UserSrvc/RequestData" xmlns:ns0="http://xmlns.myapp.com/UserMngtApp/UserSrvc/AccountData" xmlns:ns9="http://xmlns.myapp.com/UserMngtApp/UserSrvc/GeneralData" xmlns:ns3="http://xmlns.myapp.com/UserMngtApp/UserSrvc/EntitlementData" xmlns:ns1="http://xmlns.myapp.com/UserMngtApp/UserSrvc/AppInstanceData" xmlns:ns6="http://xmlns.myapp.com/UserMngtApp/UserSrvc/ResourceData" xmlns:ns2="http://xmlns.myapp.com/UserMngtApp/UserSrvc/CatalogData" xmlns:ns4="http://xmlns.myapp.com/UserMngtApp/UserSrvc/FaultData" xmlns:ns5="http://xmlns.myapp.com/UserMngtApp/UserSrvc/OrgData" xmlns:ns7="http://xmlns.myapp.com/UserMngtApp/UserSrvc/RoleData" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <ns8:usr_key> <ns9:Value>6</ns9:Value> </ns8:usr_key> <ns8:act_key> <ns9:Value>1</ns9:Value> </ns8:act_key> <ns8:LastName> <ns9:Value>User_1526622550960</ns9:Value> </ns8:LastName> <ns8:FirstName> <ns9:Value>User_1526622550960</ns9:Value> </ns8:FirstName> <ns8:MiddleName> <ns9:Value>User_1526622550960</ns9:Value> </ns8:MiddleName> <ns8:DisplayName> <ns9:Key Name="base" Value="User_1526622550960 User_1526622550960 User_1526622550960"/> </ns8:DisplayName> <ns8:XellerateType xsi:nil="true"/> <ns8:Status> <ns9:Value>Active</ns9:Value> </ns8:Status> <ns8:Role> <ns9:Value>Full-Time</ns9:Value> </ns8:Role> <ns8:UserLogin> <ns9:Value>USER_1526622550960</ns9:Value> </ns8:UserLogin> <ns8:FullName xsi:nil="true"/> <ns8:UserManagerKey> <ns9:Value>5</ns9:Value> </ns8:UserManagerKey> <ns8:AdditionalData Name="Common Name"> <ns9:Value>User_1526622550960</ns9:Value> </ns8:AdditionalData> <ns8:AdditionalData Name="usr_locked"> <ns9:Value>0</ns9:Value> </ns8:AdditionalData> <ns8:AdditionalData Name="usr_disabled"> <ns9:Value>0</ns9:Value> </ns8:AdditionalData> </ns8:UserData> </part> </beneficiaryUserDetails> </messages>
Попросите, пожалуйста, взглянуть на схему и предложить, что может быть не так со схемой.