我正在使用 Python 的 suds 库,它试图通过网络获取 xml.xsd。不幸的是,w3c 服务器由于像我这样的其他程序而受到重创,通常无法提供文档。
我如何拦截 suds 的 URL 获取以始终获取此文件的本地副本,即使第一次不必将其成功下载到长期缓存中?
小智 5
获取 xml.xsd 的问题与大多数 WSDL 所需的“http://www.w3.org/XML/1998/namespace”命名空间有关。这个命名空间默认映射到http://www.w3.org/2001/xml.xsd。
您可以覆盖此命名空间的位置绑定以指向本地文件:
from suds.xsd.sxbasic import Import
file_url = 'file://<path to xml.xsd>'
Import.bind('http://www.w3.org/XML/1998/namespace', file_url)
Run Code Online (Sandbox Code Playgroud)