tabla - macro para extraer datos de un xml a excel
¿Cómo hacer referencia a un archivo de esquema XML local correctamente? (3)
Agregue una barra oblicua más después del file://
en el valor de xsi:schemaLocation
. (Tienes dos, necesitas tres. Piensa en el protocol://host/path
donde el protocol
es ''file''
y el host
está vacío aquí, produciendo tres barras en una fila.) También puedes eliminar las barras dobles a lo largo de la path
. Creo que las barras diagonales dobles ayudan con los sistemas de archivos que permiten espacios en los nombres de archivos y directorios, pero sabiamente evitó esa complicación en el nombre de su ruta.
xsi:schemaLocation="http://www.w3schools.com file:///C:/environment/workspace/maven-ws/ProjextXmlSchema/email.xsd"
¿Sigue sin funcionar? Sugiero que copie cuidadosamente la especificación de archivo completo para el XSD en la barra de direcciones de Chrome o Firefox :
file:///C:/environment/workspace/maven-ws/ProjextXmlSchema/email.xsd
Si el XSD no se muestra en el navegador , elimine todos menos el último componente de la ruta (email.xsd) y vea si no puede mostrar el directorio principal. Continúe de esta manera, recorriendo la estructura del directorio hasta que descubra dónde el camino diverge de la realidad de su sistema de archivos local.
Si el XSD se muestra en el navegador , indique qué procesador XML está utilizando y prepárese para escuchar que está roto o que debe evitar alguna limitación. Puedo decirle que la corrección anterior funcionará con mi validador basado en Xerces-J.
Tengo este problema al hacer referencia a mi esquema XML en un archivo XML.
Tengo mi XSD en esta ruta:
C:/environment/workspace/maven-ws/ProjectXmlSchema/email.xsd
Pero cuando en mi archivo XML estoy tratando de localizar el esquema de esta manera, el XSD no se encuentra:
<?xml version="1.0" encoding="UTF-8" ?>
<email xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com
file://C://environment//workspace//maven-ws//ProjextXmlSchema//email.xsd">
La única forma en que se encuentra el XSD es cuando está en la misma carpeta:
xsi:schemaLocation="http://www.w3schools.com email.xsd"
Entonces, la pregunta es: ¿cómo debe verse la ruta para que se encuentre el XSD si el archivo XML no estaba en la misma carpeta que el archivo XSD?
Por cierto, el ejemplo que he estado usando era de MSDN : afirman que se supone que funciona del modo en que lo intenté. Pero no es así
Si trabajas en MS Visual Studio solo haz lo siguiente
- Coloque el archivo WSDL y el archivo XSD en la misma carpeta .
Corrija el archivo WSDL como este YourSchemeFile.xsd
Use Visual Studio usando este gran ejemplo Cómo generar una referencia de servicio con solo el archivo wsdl físico
Tenga en cuenta que debe colocar manualmente la ruta de acceso a su archivo WSDL. No hay forma de usar el cuadro de diálogo Abrir archivo .
Tal vez pueda ayudar a comprobar que la ruta al archivo xsd no tiene caracteres ''extraños'' como ''é'', o similar: estaba teniendo el mismo problema pero cuando cambié a un camino sin la ''é'', el error desapareció.