2015-01-26 15 views
5

Ricevo un errore durante la generazione di Java da WSDL. Volevo usare la caratteristica 1.1 di XML Schema (xsd: assert). Sta affermando se un elemento è disponibile nella richiesta di servizio Web.Quali sono le alternative per il supporto XML Schema 1.1 di JAXB?

<xsd:assert test="(count(InstanceDetail[@OrderCodeType eq 'OFFERID']) eq 1)" /> 

Sto usando Apache CXF v 2.6.1. Sto ottenendo un errore durante l'utilizzo di opzione MVN generare-sources:

lanciata da JAXB: Unexpected <xsd:assert> appare in linea di 200 colonna 3 di file di schema:

Ricercando su l'errore, ho scoperto che JAXB supporta solo XML Schema 1.0 e questa funzionalità è disponibile in XML Schema 1.1. Se è vero, quali sono le altre opzioni che ho?

+0

possibile duplicato di [Chi sta utilizzando la versione XML Schema 1.1? Quali versioni del parser lo supportano? ecc] (http://stackoverflow.com/questions/4834664/who-is-using-xml-schema-1-1-version-which-parser-versions-support-it-etc) – lexicore

+0

Se leggi l'intera descrizione , non è duplicato. Sto cercando una soluzione piuttosto che una semplice risposta alla domanda. – user1555524

+0

Ok, scusa, non era abbastanza attento. – lexicore

risposta

6

No, la versione corrente di JAXB non supporta XSD 1.1. Vedere questi problemi, per esempio:

Aggiornamento:

Per quanto riguarda la soluzione. Personalmente, avrei eseguito un XSLT che avrebbe eliminato tutti gli XSD 1.1. caratteristiche e restituire vaniglia XSD 1.0 come risultato e compilarlo con JAXB. Non sono sicuro di come farlo tecnicamente con CXF, però.

+0

Grazie! Penso sia chiaro, ma quali sono le possibili soluzioni per superare questo? – user1555524

+0

@ user1555524 Si prega di consultare l'aggiornamento con un suggerimento. – lexicore

1

È sempre possibile utilizzare schematron (http://schematron.com/) sopra XSD 1.0. È un po 'complicato, ma così facendo avrai le funzionalità di validazione condizionale di XSD 1.1 e la compatibilità con il parser XSD.

Problemi correlati