XML-каталог в PHP

SimpleXML использует libxml под ним, но я не уверен, может ли он разрешать узлам узлов использовать локальный кеш.
Я пробовал и анализировал CentOS и систему Ubuntu, установил необходимые пакеты, получил /etc/xml/catalog aka

 <?xml version="1.0"?> <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/rele> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> ... (docbook here) <delegatePublic publicIdStartString="-//W3C//DTD XHTML 1.0" catalog="file:///usr/share/sgml/xhtml1/xmlcatalog"/> <delegateSystem systemIdStartString="http://www.w3.org/TR/xhtml1/DTD" catalog="file:///usr/share/sgml/xhtml1/xmlcatalog"/> <delegateURI uriStartString="http://www.w3.org/TR/xhtml1/DTD" catalog="file:///usr/share/sgml/xhtml1/xmlcatalog"/> </catalog> 

и /usr/share/sgml/xhtml1/xmlcatalog aka

 <?xml version="1.0"?> <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/rele> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> ... (strict, traditional, frameset here) <rewriteSystem systemIdStartString="http://www.w3.org/TR/xhtml1/DTD" rewritePrefix="xhtml1-20020801/DTD"/> <rewriteURI uriStartString="http://www.w3.org/TR/xhtml1/DTD" rewritePrefix="xhtml1-20020801/DTD"/> </catalog> 

В /usr/share/sgml/xhtml1/xhtml1-20020801/DTD/ мы находим

 ... (strict, traditional, frameset here) -rwxr-xr-x 1 root root 11775 Jan 6 2007 xhtml-lat1.ent -rwxr-xr-x 1 root root 4131 Jan 6 2007 xhtml-special.ent -rwxr-xr-x 1 root root 13848 Jan 6 2007 xhtml-symbol.ent 

но XML-String занимает много времени, чтобы анализировать simplexml_load_string($xml) или $x = XMLReader::xml($xml) и $x->next() + $x->readString() если это содержит

 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE rootNode [ <!ENTITY % HTMLspecial PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"> %HTMLspecial; <!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"> %HTMLlat1; ]> <rootNode> ... </rootNode> 

когда-то он терпит неудачу из-за таймаута.
С другой стороны, разрешение xmlcatalog отлично работает:

 [root@... sal]# xmlcatalog --shell > debug > resolve "-//W3C//ENTITIES Special for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent" Resolve: pubID -//W3C//ENTITIES Special for XHTML//EN sysID http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent 0 Parsing catalog file:///etc/xml/catalog file:///etc/xml/catalog added to file hash file:///usr/share/sgml/xhtml1/xmlcatalog not found in file hash 0 Parsing catalog file:///usr/share/sgml/xhtml1/xmlcatalog file:///usr/share/sgml/xhtml1/xmlcatalog added to file hash Trying system delegate file:///usr/share/sgml/xhtml1/xmlcatalog Using rewriting rule http://www.w3.org/TR/xhtml1/DTD file:///usr/share/sgml/xhtml1/xhtml1-20020801/DTD/xhtml-special.ent > 

xmllint анализирует строку как файл в мгновение LIBXML_NOENT , отключение обработчика объекта bei LIBXML_NOENT работает быстро, но, конечно же, без результата, который мы желаем и разбираем ошибки. Я читал источник PHP, но если я не ошибаюсь, для xmlCatalogResolve() или xmlInitializeCatalog() или подобного, вообще нет никакого следа, возможно, немного глубже …

Мои вопросы:

  1. есть ли способ отладки использования PHP libxml (2)?
  2. что я забыл использовать в каталоге?