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.
Итак, два вопроса:
- Зачем Xerces пытаться обрабатывать URI пространства имен как URI с "реальным" содержимым?
- Как я могу отключить это?
Для записи, URI не является ни местоположением для схемы или DTD. Я все еще пытался отключить загрузку внешних DTD, которые, конечно, ничего не сделали:
parser.setProperty("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
Какие-нибудь мысли?