簡體   English   中英

CXF-Json模式驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM