Xerces пытается загрузить URI пространства имен - почему? Могу ли я отключить это?

У меня следующая проблема: у меня есть документ XML с несколькими пространствами имен - вот открывающий тег:

<?xml version="1.0" encoding="UTF-8"?>
<REQ-IF 
   xmlns="http://www.omg.org/spec/ReqIF/20110401/reqif.xsd"
   xmlns:doors="http://www.ibm.com/rdm/doors/REQIF/xmlns/1.0"
   xmlns:reqif="http://www.omg.org/spec/ReqIF/20110401/reqif.xsd"
   xmlns:reqif-common="http://www.prostep.org/reqif"
   xmlns:reqif-xhtml="http://www.w3.org/1999/xhtml"
   xmlns:rm="http://www.ibm.com/rm"
   xmlns:rm-reqif="http://www.ibm.com/rm/reqif"
   xmlns:xhtml="http://www.w3.org/1999/xhtml"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

Как видите, существует несколько пространств имен. Я использую Xerces в качестве парсера. Проблема заключается в том, что синтаксический анализатор пытается посетить URI из пространств имен, о которых он не знает. Это плохо, потому что это замедляет разбор. Например, " http://www.prostep.org/reqif" преобразуется в веб-страницу. Контент анализируется очень хорошо (конечно, так как URI пространства имен - это просто имя), это занимает много времени, потому что анализатор долго зависает при получении URI.

Итак, два вопроса:

  1. Зачем Xerces пытаться обрабатывать URI пространства имен как URI с "реальным" содержимым?
  2. Как я могу отключить это?

Для записи, URI не является ни местоположением для схемы или DTD. Я все еще пытался отключить загрузку внешних DTD, которые, конечно, ничего не сделали:

parser.setProperty("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

Какие-нибудь мысли?

0 ответов

Другие вопросы по тегам