Hola,
Ees importante hacer una distinción acerca de la "accesibilidad" de un determinado URL en XML.
El URL de un "namespace" como "
http://www.sat.gob.mx/cfd/3" no necesariamente requiere ser accesible, mientras que el URL al esquema asociado si necesita serlo.
Para XML un "namespace" es únicamente un identificador, y podría usarse uno totalmente "abstracto", por ejemplo: "urn:sat_mexico:cfd:3", el único requisito es que el
responsable de la semántica del mismo sea también "titular" del URL utilizado, es decir, tenga la autoridad sobre el espacio de nombres utilizado, todo con el objeto de evitar colisiones.
Por otro lado, el "schemaLocation" que identifica al documento con el XML-Schema utilizado para validad un documento original, si requiere ser un URL "accesible", pues
apunta a un recurso necesario durante el proceso de validación.
En ese sentido, tratar de resolver "
http://www.sat.gob.mx/cfd/3" no tiene sentido, el SAT puede o no tener un documento o entidad accesible ahí, y aún en caso de existir,
su contenido no es requerido para el proceso de un XML que lo use como "namespace", pero el esquema asociado, "
http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv3.xsd"
si necesita estar formalmente accesible y efectivamente contener un documento de XML-Schema y lo mismo sucede con los archivos XSLT.
Ahora bien, como efectivamente el SAT (o cualquiera) puede tener fallas de conectividad o intermitencia en su servicio, es recomendable implementar algún mecanismo de
"cache" de aquellos recursos necesarios para el proceso (XSDs, XSLTs, etc), y al respecto hay estándares en XML bien establecidos, busquen "xmlcatalog" y vean que soporte tienen sus APIs para ese estándar.