cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Balaji Sengeni (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-4597) CXF - jaxws - schema validation for nillable false
Date Thu, 08 Nov 2012 14:23:13 GMT

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

Balaji Sengeni commented on CXF-4597:
-------------------------------------

Hi Freeman,

 I have tried using the 'cxf-codegen-plugin' for wsdl2java goal, even then nillable attribute
is missing for the generated java class.

   i.e, actually @XmlElement(required = true) but not create as @XmlElement(required = true,
nillable = false) for all the elements in the xsd where nillable is not defined explicitly
in schema. [since nillable is false by default as per xsd]

But JAXB parser accepts empty xml element as shown in example below.

XSD fragment :
------------  

    <xsd:complexType name="person">
        <xsd:sequence>
            <xsd:element name="title" type="xsd:string" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="firstnames">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                        <xsd:maxLength value="100"/>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="lastname">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                        <xsd:maxLength value="100"/>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="date-of-birth" type="dateTimeZ"/>
        </xsd:sequence>
    </xsd:complexType>

for this xsd included in wsdl below xml fragment is allowed by the cxf ws with schema validation
enabled.

                         <person>
                            <title>Mr</title>
                            <firstnames>Freeman</firstnames>
                            <lastname></lastname>
                            <date-of-birth>19631015000000Z</date-of-birth>
                        </person>

where '<lastname>' element is null which is valid for java string datatype. But as per
schema, nillable is false(default for all elements in xsd) which shouldn't accept this value
and throw xsd validation failure exception but cxf doesn't throw (JAXB skips this validation).

Hi Daniel,

  I got your point of - user defined CXF interceptor configured before/after default XSD validation
phase and do explicit nillable validation for each element which I feel little heavy(since
I have min. 200 + elements in payload). Please can you provide me a reference / example for
it.

Thanks & Regards,
  Balaji
                
> CXF - jaxws - schema validation for nillable false
> --------------------------------------------------
>
>                 Key: CXF-4597
>                 URL: https://issues.apache.org/jira/browse/CXF-4597
>             Project: CXF
>          Issue Type: Bug
>          Components: JAXB Databinding
>    Affects Versions: 2.6
>         Environment: Tomcat web server
>            Reporter: Balaji Sengeni
>            Priority: Blocker
>             Fix For: Invalid
>
>
> Hi ,
>  I apologize, if I have chosen wrong issue type.
>  I use contract first web service where xsd is defined in external file. 
>  [by default, nillable is false if we haven't mentioned for elements in xsd]
>  I used jaxws-maven-plugin to import java classes from wsdl. I noticed that nillable
attribute is missing for @XmlElement(required = true) [java data type string]. I assume, its
the default behaviour, so Jaxb will treat those element as nillable false.
>  But when the user sends empty tag, my web service accepts that value. 
>  Without touching the xsd (setting minLength for the string), is there a easy way to
do non empty string validation?
>  
>  

--
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

Mime
View raw message