我使用来验证和解析xml数据。通过XMLReader::setSchema函数和来自http:// via xsd:import/include的远程xsd模式,本地文件中的一些xsd模式验证了这个xml。每个操作都很好,但是每次调用时都会从网络中获取xsd模式,并从磁盘读取。
所以我的问题是:
有没有在本地RAM中缓存远程xsd模式的方法?对于本地模式文件,我认为Linux中的tmpfs可以正常工作,但是还有其他方法来缓存本地xsd模式文件吗?
溶液
感谢VolkerK指出了xmlcatalog系统。它适用于libxml/php xmlreader。在Linux中,只需编辑文件/etc/xml/catalog (它来自xml--在Fedora中很常见),添加一些条目(例如):
<rewriteURI uriStartString="http://schemas.xmlsoap.org/soap/envelope/" rewritePrefix="/etc/xml/SOAP-Envolope.xsd"/>
<rewriteURI uriStartString="http://schemas.xmlsoap.org/soap/encoding/" rewritePrefix="/etc/xml/SOAP-Encoding.xsd"/>和手动下载模式(例如,http://schemas.xmlsoap.org/soap/encoding/、-> /etc/xml/SOAP-Encoding.xsd),php在解析SOAP消息时可以像预期的那样工作。
发布于 2011-07-26 07:47:43
php的xmlreader使用libxml,libxml支持xml过氧化氢
什么是目录?基本上是一个查找机制..。 它主要用于三件事: ..。
还没试过,但我想值得一试。
https://stackoverflow.com/questions/6826384
复制相似问题