net.sf.saxon.trans.DynamicError: Required item type of first operand of '/' is node()

View: New views
2 Messages — Rating Filter:   Alert me  

net.sf.saxon.trans.DynamicError: Required item type of first operand of '/' is node()

by cschlaefcke :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Folks,

I just started using the "selectPath" Function of XmlBeans with a XPath-Expression and run into different problems.

I have a xml structure that can have arbitrary nestings of categories/category elements (see further below). With my Xpath expression I want to filter a node category with a certain default name and get all of its child categories.

But all I get Is the above mentioned exception:
java.lang.RuntimeException: net.sf.saxon.trans.DynamicError: Required item type of first operand of '/' is node(); supplied value has item type java:org.apache.xmlbeans.impl.store.Xobj-DocumentXobj
[...]

I searched with google and espacially in this forum but could not find any hint on this!

I use XmlBeans in combination with Spring and Maven. I have xmlbeans.jar:2.30, xmlbeans-xpath.jar:2.3.0, saxon.jar:8.7 and saxon-xpath.jar:8.7 in my classpath.

Thanks for any help!

Regards,

Christian

Here is the code that causes my problems:

        [...]
        String prefix = "declare namespace my='http://www.my-namespace.com';";
        String xq = prefix + "$this//my:category/@default_name='Category 1'";
        myDocument.selectPath(xq);
        [...]

The underlying xml is a little complex and looks like this:

    <my:sites xmlns:my="http://www.my-namepace.com">
      <my:site default_name="My Test Site">
        <my:attributes>
          <my:attribute locale="de_DE">
            <my:name>_longDescription_</my:name>
            <my:value>Description of site</my:value>
          </my:attribute>
        </my:attributes>
        <my:categories>
          <my:category default_name="Root Category">
            <my:attributes/>
            <my:categories>
              <my:category default_name="Category 1">
                <my:attributes>
                  <my:attribute locale="de_DE">
                    <my:name>_longDescription_</my:name>
                    <my:value>Description of Category 1</my:value>
                  </my:attribute>
                </my:attributes>
                <my:categories>
                  <my:category default_name="Category 1">
                    <my:attributes>
                      <my:attribute locale="de_DE">
                        <my:name>_longDescription_</my:name>
                        <my:value>Description of Category 1</my:value>
                      </my:attribute>
                    </my:attributes>
                  </my:category>
                  <my:category default_name="Category 1.1">
                    <my:attributes>
                      <my:attribute locale="de_DE">
                        <my:name>_longDescription_</my:name>
                        <my:value>Description of Category 1</my:value>
                      </my:attribute>
                    </my:attributes>
                  </my:category>
                  <my:category default_name="Category 1.2">
                    <my:attributes>
                      <my:attribute locale="de_DE">
                        <my:name>_longDescription_</my:name>
                        <my:value>Description of Category 1</my:value>
                      </my:attribute>
                    </my:attributes>
                  </my:category>
                </my:categories>
              </my:category>
              <my:category default_name="Category 2">
                <my:attributes>
                  <my:attribute locale="de_DE">
                    <my:name>_longDescription_</my:name>
                    <my:value>Description of Category 1</my:value>
                  </my:attribute>
                </my:attributes>
              </my:category>
              <my:category default_name="Category 3">
                <my:attributes>
                  <my:attribute locale="de_DE">
                    <my:name>_longDescription_</my:name>
                    <my:value>Description of Category 1</my:value>
                  </my:attribute>
                </my:attributes>
              </my:category>
            </my:categories>
          </my:category>
        </my:categories>
      </my:site>
    </my:sites>

[solved] net.sf.saxon.trans.DynamicError: Required item type of first operand of '/' is node()

by cschlaefcke :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

cschlaefcke wrote:
But all I get Is the above mentioned exception:
java.lang.RuntimeException: net.sf.saxon.trans.DynamicError: Required item type of first operand of '/' is node(); supplied value has item type java:org.apache.xmlbeans.impl.store.Xobj-DocumentXobj
Okay, got it! "saxon-dom.jar:8.7" was missing!

Regards,

Chris