You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Freeman Fang (JIRA)" <ji...@apache.org> on 2013/04/07 05:21:16 UTC

[jira] [Commented] (CXF-4948) CXF does not validate unions

    [ https://issues.apache.org/jira/browse/CXF-4948?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13624607#comment-13624607 ] 

Freeman Fang commented on CXF-4948:
-----------------------------------

Hi,


If you already enable validation, this probably come from that build service module from class but not from the wsdl, so can't load the restrictions which is only in wsdl

Could you post the log  when you start your server or the client? It should indicate build service from wsdl or from the class.

Freeman
                
> CXF does not validate unions
> ----------------------------
>
>                 Key: CXF-4948
>                 URL: https://issues.apache.org/jira/browse/CXF-4948
>             Project: CXF
>          Issue Type: Bug
>         Environment: any, Linux or Windows
>            Reporter: Nataliya Wierts
>
> If user has small simpletype entities, that are used as building blocks in xsd:
> {code}
>  <xs:simpleType name="rentpersqm">
>         <xs:restriction base="xs:string">
>             <xs:enumeration value="rentpersqm">
>                 <xs:annotation>
>                     <xs:documentation xml:lang="en">rent per sq meter</xs:documentation>
>                     <xs:documentation xml:lang="de-DE">Miete pro Quadratmeter</xs:documentation>
>                 </xs:annotation>
>             </xs:enumeration>
>         </xs:restriction>
>     </xs:simpleType>
>     <xs:simpleType name="rentpermonth">
>         <xs:restriction base="xs:string">
>             <xs:enumeration value="rentpermonth">
>                 <xs:annotation>
>                     <xs:documentation xml:lang="en">rent per month</xs:documentation>
>                     <xs:documentation xml:lang="de-DE">Miete pro Monat</xs:documentation>
>                 </xs:annotation>
>             </xs:enumeration>
>         </xs:restriction>
>     </xs:simpleType>
>     <xs:simpleType name="rentandbuy">
>         <xs:restriction base="xs:string">
>             <xs:enumeration value="rentandbuy">
>                 <xs:annotation>
>                     <xs:documentation xml:lang="en">rent and buy</xs:documentation>
>                     <xs:documentation xml:lang="de-DE">Kauf oder Miete</xs:documentation>
>                 </xs:annotation>
>             </xs:enumeration>
>         </xs:restriction>
>     </xs:simpleType>
>    
>  {code}   
> than in union the validation does not check that blocks contain this string
> {code}
>    <xs:simpleType name="TradeSitePriceType">
>         <xs:restriction>
>             <xs:simpleType>
>                 <xs:union memberTypes="rentpermonth rentandbuy"/>
>             </xs:simpleType>
>         </xs:restriction>
>     </xs:simpleType>
>     <xs:simpleType name="CommercialPriceType">
>         <xs:restriction>
>             <xs:simpleType>
>                 <xs:union memberTypes="rentpersqm rentpermonth"/>
>             </xs:simpleType>
>         </xs:restriction>
>     </xs:simpleType>
>   .......
>   <xs:complexType name="industry">
>   ....
>     <xs:element name="pricetype" type="priceTypes:CommercialPriceType" minOccurs="0" maxOccurs="1"/>
>   ....
>   </xs:complexType>
> ......
> {code}
> the validation for CommercialPriceType should not let 'rent', but it does, it is not considered to be an error at all. And all values are transfered into String while transforming of xsd entities to Java Classes.
> it would go without problems:
> {code}
>  <industry>
>  <pricetype>
>     <item>rentandbuy</item>
>     <item>rentpermonth</item>
> </pricetype>
> </industry>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira