Вы должны настроить выражение XPath следующим образом:
<int-xml:xpath-expression id="countExpression" expression="count(//ns:Ephemeris/ns:Record)"
ns-prefix="ns"
ns-uri="http://www.sandia.gov/pgmm/Ephemeris"/>
И вместо этого иметь его в качестве ссылки из <int-xml:header>
.
Проблема в том, что ваш корневой элемент вXML поставляется с xmlns="http://www.sandia.gov/pgmm/Ephemeris"
, поэтому другого пути нет, если мы не соблюдаем пространства имен в вашем исходном XML.Для этой цели мы вводим искусственный префикс, даже если ваш исходный XML уже есть.Это необходимо в XPath для правильного различения элементов на основе некоторого пространства имен.
Я думаю, что default DocumentBuilderFactory
просто не учитывает пространства имен, что делает ваши возможные выражения XPath очень ужасными, когда речь заходит о поддержке нескольких пространств имен.