[英]CXF - Json schema validation
我認為我應該問的第一個問題是-是否可以使用XSD驗證json有效負載? 無論如何,CXF給出的示例都使用XSD。
我遵循CXF的說明-http: //cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-Schemavalidation
(1)首先抱怨
"cvc-elt.1: Cannot find the declaration of element 'OSDCreateAppointmentRequest'"
(2)要解決此問題,建議為json對象添加一個名稱空間,因為Json沒有“名稱空間”概念,但是XSD具有
(3)因此,我將命名空間添加到Json對象,如下所示
<property name="inTransformElements">
<map>
<entry key="OSDCreateAppointmentRequest" value="{http://www.w3.org/2001/XMLSchema}OSDCreateAppointmentRequest"/>
</map>
</property>
現在它抱怨
cvc-elt.1: Cannot find the declaration of element 'ps1:OSDCreateAppointmentRequest'
好吧,“ ps1”看起來像一個名稱空間前綴,不知道它來自哪里。
有什么建議么? 您的經驗將不勝感激!
W3C XML模式(XSD)只能用於驗證XML文件。
JSON不是XML。 因此,沒有XML技術適用於JSON(至少,沒有對相應XML進行任何轉換)。 也就是說,XSD不能用於驗證JSON。
取而代之的是,JSON具有自己的模式(當然是用JSON編寫的),請參見: http : //json-schema.org
我知道問題發布已經有一段時間了。 我讓這個工作。 我使用此方法的方法是在org.apache.cxf.jaxrs.provider.json.JSONProvider中使用以下屬性
<property name="namespaceMap" ref="jsonNamespaceMap"/>
並聲明名稱空間映射
<util:map id="jsonNamespaceMap">
<entry key="<your-namespace>" value="<prefix>"/>
</entry>
</util:map>
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.