2015-01-26 18 views
5

WSDL'den Java oluştururken hata alıyorum. XML Schema'nın 1.1 özelliğini (xsd: assert) kullanmak istedim. Web Hizmeti İsteğinde bir öğenin mevcut olup olmadığı iddia edilir.JAXB tarafından XML Schema 1.1 desteğine sahip olmanın alternatifleri nelerdir?

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

Apache CXF v 2.6.1 kullanıyorum. JAXB tarafından atılmış

: mvn oluşturmak-kaynaklar seçeneğini kullanırken bir hata alıyorum <xsd:assert> Beklenmeyen çizgisinde görünen 200 kolon şeması dosyasının 3 :

hata üzerine araştırma, öğrendim JAXB sadece XML Şema 1.0'ı destekliyor ve bu özellik XML Şema 1.1'de kullanılabilir. Eğer doğruysa, diğer seçeneklerim nelerdir?

+0

olası bir kopyası var [XML Şema 1.1 sürümünü kimler kullanıyor? Hangi ayrıştırıcı sürümleri destekliyor? etc] (http://stackoverflow.com/questions/4834664/who-is-using-xml-schema-1-1-version-which-parser-versions-support-it-etc) – lexicore

+0

Tüm açıklamayı okuduysanız , çoğaltılmaz. Sorunun cevabından ziyade bir çözüm arıyorum. – user1555524

+0

Tamam, üzgünüm, yeterince dikkatli değildi. – lexicore

cevap

6

Hayır, JAXB'nin geçerli sürümü XSD 1.1'i desteklemiyor. Örneğin, bu konuları bak:

Güncelleme:

çözümü ile ilgili. Şahsen ben, tüm XSD 1.1'i soracak bir XSLT çalıştırdım. Özellikler ve sonuç olarak vanilla XSD 1.0'ı döndürün ve JAXB ile derleyin. Bununla birlikte, teknik olarak CXF ile nasıl yapıldığından emin değilsiniz.

+0

Teşekkürler! Açıkçası bence, bunun üstesinden gelmek için olası çözümler neler? – user1555524

+0

@ user1555524 Lütfen bir öneri ile güncellemeye bakın. – lexicore

1

Her zaman XSD 1.0'ın üstünde şematron (http://schematron.com/) kullanabilirsiniz. Bu biraz zor ama bunu yaparak XSD 1.1'in koşullu doğrulama özelliklerine ve XSD ayrıştırıcısına uyumluluğa sahip olacaksınız.