Have you tried "/isUsaResident"? Javabean property names typically begin with lower case.
HTH, Matt On Tue, Jul 3, 2012 at 4:41 PM, Lucas Reginato <[email protected]> wrote: > Hi, > > > > I’m facing a strange behavior using xPath to query boolean values. > > Every time I tried to query boolean values with xPath, I get an exception > saying that no value was found. > > > The exception is: > > org.apache.commons.jxpath.JXPathNotFoundException: No value for xpath: > <myXpath> > > > Let me present the complete example that I'm using: > > > This is my schema: > > <?xml version="1.0"?> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance" xmlns="http://mySchema" > xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc=" > http://java.sun.com/xml/ns/jaxb/xjc" targetNamespace="http://mySchema" > elementFormDefault="qualified" jaxb:extensionBindingPrefixes="xjc" > jaxb:version="2.0"> > <xs:annotation> > <xs:appinfo> > <jaxb:globalBindings> > <xjc:serializable/> > </jaxb:globalBindings> > </xs:appinfo> > </xs:annotation> > <!-- Base type definitions --> > <xs:complexType name="MyEntity"> > <xs:sequence> > <xs:element name="Id" type="xs:string" minOccurs="0" > maxOccurs="1"/> > <xs:element name="Name" type="xs:string" minOccurs="0" > maxOccurs="1"/> > <xs:element name="IsUsaResident" type="xs:boolean" > minOccurs="0" maxOccurs="1"/> > <xs:element name="AnotherBooleanValue" type="xs:boolean" > minOccurs="0" maxOccurs="1"/> > </xs:sequence> > </xs:complexType> > <!-- Root Element --> > <xs:element name="MyEntity" type="MyEntity"/> > </xs:schema> > > > In order to generate my java classes based on the schema, I'm using the xjc > ant tag. > > My generated class looks like this: > > > package myschema; > import java.io.Serializable; > import javax.xml.bind.annotation.XmlAccessType; > import javax.xml.bind.annotation.XmlAccessorType; > import javax.xml.bind.annotation.XmlElement; > import javax.xml.bind.annotation.XmlType; > @XmlAccessorType(XmlAccessType.FIELD) > @XmlType(name = "MyEntity", propOrder = { > "id", > "name", > "isUsaResident", > "anotherBooleanValue" > }) > public class MyEntity implements Serializable{ > @XmlElement(name = "Id") > protected String id; > @XmlElement(name = "Name") > protected String name; > @XmlElement(name = "IsUsaResident") > protected Boolean isUsaResident; > @XmlElement(name = "AnotherBooleanValue") > protected Boolean anotherBooleanValue; > public String getId() { return id; } > public void setId(String value) { this.id = value; } > public String getName() { return name; } > public void setName(String value) { this.name = value; } > public Boolean isIsUsaResident() { return isUsaResident; } > public void setIsUsaResident(Boolean value) { this.isUsaResident = > value; } > public Boolean isAnotherBooleanValue() { return anotherBooleanValue; } > public void setAnotherBooleanValue(Boolean value) { > this.anotherBooleanValue = value; } > } > > > And I'm using the following code to query boolean values: > MyEntity myEntity = new MyEntity(); > myEntity.setId("1"); > myEntity.setName("MyName"); > myEntity.setIsUsaResident(true); > myEntity.setAnotherBooleanValue(false); > Object result = ""; > JXPathContext context = JXPathContext.newContext(myEntity); > try { > result = context.getValue("/IsUsaResident"); > if (result == null) { > result = ""; > } > } catch (JXPathException exc) { > exc.printStackTrace(); > } > System.out.println(result.toString()); > > Can someone help me with this? > > Thanks, > -Lucas Reginato --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
