You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@xmlbeans.apache.org by "Gillen, Paul" <pa...@nscorp.com> on 2009/06/03 21:10:46 UTC

XML validation not showing element name in error

I have an XSD containing an element definition:

                  <xs:element name="SEQUENCE_NUMBER">

                        <xs:simpleType>

                              <xs:restriction base="xs:long">

                                    <xs:minInclusive value="1"/>

                                    <xs:maxInclusive
value="9999999999999"/>

                              </xs:restriction>

                        </xs:simpleType>

                  </xs:element>

 

When I try to validate XML containing:

      <SEQUENCE_NUMBER/>

I get the message:

      Invalid decimal value: expected at least one digit

 

There is no indication that this is for the SEQUENCE_NUMBER element.  Is
there any way to get that?  

 

The code:  

        try

        {

            ArrayList   validationErrors    = new ArrayList();

            XmlOptions  validationOptions   = new XmlOptions();

            validationOptions.setErrorListener(validationErrors);

            

            tempObject = (XmlObject) xClassFactoryParse.invoke(null,
aXml);

              

            if (!tempObject.validate(validationOptions))

            {   

                String      exMsg       =   "validation failed";

                Iterator    iter        = validationErrors.iterator();

                while (iter.hasNext())

                {

                    XmlValidationError valErr =
(XmlValidationError)iter.next();

                    exMsg   +=  "\n\t" + valErr.getMessage();

                } 

                return exMsg;

            }

            return "XML document is valid";

        }

        catch (Exception e)

        {

            return "Document could not be validated";

        }


RE: XML validation not showing element name in error

Posted by "Gillen, Paul" <pa...@nscorp.com>.
Thank you Radu.  So often on these fora when the "happy message" isn't
appropriate one never gets a response.

For documentation purposes should anyone else encounter this problem,
I've tried every combination of cursor, line number, etc. and none will
give you any indicator or pointer to the problem.

Paul 
 
-----Original Message-----
From: Radu Preotiuc [mailto:radu.preotiuc-pietro@oracle.com] 
Sent: Wednesday, June 03, 2009 4:50 PM
To: user@xmlbeans.apache.org
Subject: Re: XML validation not showing element name in error

No, not currently. There is definitely room for improvement as far as
this error message is concerned. Hopefully, the message is pretty clear
though and allows you to do a quick search in the document for the
offending element instance.

Radu

On Wed, 2009-06-03 at 15:10 -0400, Gillen, Paul wrote:
> I have an XSD containing an element definition:
> 
>                   <xs:element name="SEQUENCE_NUMBER">
> 
>                         <xs:simpleType>
> 
>                               <xs:restriction base="xs:long">
> 
>                                     <xs:minInclusive value="1"/>
> 
>                                     <xs:maxInclusive
> value="9999999999999"/>
> 
>                               </xs:restriction>
> 
>                         </xs:simpleType>
> 
>                   </xs:element>
> 
>  
> 
> When I try to validate XML containing:
> 
>       <SEQUENCE_NUMBER/>
> 
> I get the message:
> 
>       Invalid decimal value: expected at least one digit
> 
>  
> 
> There is no indication that this is for the SEQUENCE_NUMBER element.
> Is there any way to get that?  
> 
>  
> 
> The code:  
> 
>         try
> 
>         {
> 
>             ArrayList   validationErrors    = new ArrayList();
> 
>             XmlOptions  validationOptions   = new XmlOptions();
> 
>             validationOptions.setErrorListener(validationErrors);
> 
>             
> 
>             tempObject = (XmlObject) xClassFactoryParse.invoke(null,
> aXml);
> 
>               
> 
>             if (!tempObject.validate(validationOptions))
> 
>             {   
> 
>                 String      exMsg       =   "validation failed";
> 
>                 Iterator    iter        = validationErrors.iterator();
> 
>                 while (iter.hasNext())
> 
>                 {
> 
>                     XmlValidationError valErr =
> (XmlValidationError)iter.next();
> 
>                     exMsg   +=  "\n\t" + valErr.getMessage();
> 
>                 } 
> 
>                 return exMsg;
> 
>             }
> 
>             return "XML document is valid";
> 
>         }
> 
>         catch (Exception e)
> 
>         {
> 
>             return "Document could not be validated";
> 
>         }
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org


Re: XML validation not showing element name in error

Posted by Radu Preotiuc <ra...@oracle.com>.
No, not currently. There is definitely room for improvement as far as
this error message is concerned. Hopefully, the message is pretty clear
though and allows you to do a quick search in the document for the
offending element instance.

Radu

On Wed, 2009-06-03 at 15:10 -0400, Gillen, Paul wrote:
> I have an XSD containing an element definition:
> 
>                   <xs:element name="SEQUENCE_NUMBER">
> 
>                         <xs:simpleType>
> 
>                               <xs:restriction base="xs:long">
> 
>                                     <xs:minInclusive value="1"/>
> 
>                                     <xs:maxInclusive
> value="9999999999999"/>
> 
>                               </xs:restriction>
> 
>                         </xs:simpleType>
> 
>                   </xs:element>
> 
>  
> 
> When I try to validate XML containing:
> 
>       <SEQUENCE_NUMBER/>
> 
> I get the message:
> 
>       Invalid decimal value: expected at least one digit
> 
>  
> 
> There is no indication that this is for the SEQUENCE_NUMBER element.
> Is there any way to get that?  
> 
>  
> 
> The code:  
> 
>         try
> 
>         {
> 
>             ArrayList   validationErrors    = new ArrayList();
> 
>             XmlOptions  validationOptions   = new XmlOptions();
> 
>             validationOptions.setErrorListener(validationErrors);
> 
>             
> 
>             tempObject = (XmlObject) xClassFactoryParse.invoke(null,
> aXml);
> 
>               
> 
>             if (!tempObject.validate(validationOptions))
> 
>             {   
> 
>                 String      exMsg       =   "validation failed";
> 
>                 Iterator    iter        = validationErrors.iterator();
> 
>                 while (iter.hasNext())
> 
>                 {
> 
>                     XmlValidationError valErr =
> (XmlValidationError)iter.next();
> 
>                     exMsg   +=  "\n\t" + valErr.getMessage();
> 
>                 } 
> 
>                 return exMsg;
> 
>             }
> 
>             return "XML document is valid";
> 
>         }
> 
>         catch (Exception e)
> 
>         {
> 
>             return "Document could not be validated";
> 
>         }
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org