¿Alguien sabe de una herramienta de línea de comandos para validar XML con el esquema XSD?Herramienta para la validación del esquema XML XSD
12
A
Respuesta
25
xmllint de la Libxml project
xmllint --schema schema.xsd doc.xml
3
En http://www.w3.org/XML/Schema en "Herramientas" debe encontrar la que se adapte a sus necesidades. Yo pensaría que es ENVDL.
-7
en C#,
// xsv.cs
// ------------------------------------------------------------------
//
// Validate an XML document against a schema.
//
// last saved:
// Time-stamp: <2010-May-06 00:28:44>
// ------------------------------------------------------------------
//
// Copyright (c) 2010 by Dino Chiesa
// All rights reserved!
//
// ------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Schema;
using System.Reflection;
[assembly: AssemblyTitle("Cheeso.Tools.XmlSchemaValidator")]
[assembly: AssemblyDescription("Xml Schema Validator")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Dino Chiesa")]
[assembly: AssemblyProduct("Tools")]
[assembly: AssemblyCopyright("Copyright © Dino Chiesa 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: AssemblyVersion("1.1.1.1")]
namespace Cheeso.Tools
{
public class XmlSchemaValidator
{
String _xsdfile;
String _xmlfile;
private void Validate()
{
List<String> validationErrors = new List<String>();
List<String> validationWarnings = new List<String>();
Action<object, ValidationEventArgs> handler = (obj, args) => {
if (args.Severity==XmlSeverityType.Warning)
validationWarnings.Add(args.Message);
else
validationErrors.Add(args.Message);
};
XmlTextReader tr = new XmlTextReader(_xmlfile);
XmlReaderSettings settings = new XmlReaderSettings
{
ValidationType = ValidationType.Schema
};
settings.Schemas.Add(null, _xsdfile);
settings.ValidationEventHandler +=
new ValidationEventHandler(handler);
XmlReader reader = XmlReader.Create(tr, settings);
XmlDocument xdoc = new XmlDocument();
xdoc.Load(reader);
// Check results
if (validationErrors.Count > 0)
{
validationErrors.ForEach(Console.WriteLine);
Console.WriteLine("The XML document is not valid, according to that Schema.");
}
else
{
if (validationWarnings.Count > 0)
{
validationWarnings.ForEach(Console.WriteLine);
}
Console.WriteLine("The XML document is valid, according to that Schema.");
}
}
public static void Usage()
{
Console.WriteLine("\nxsv: validate an XML document against an XML Schema.\n");
Console.WriteLine("Usage:\n xsv <xmldoc> <xmlschema>");
System.Environment.Exit(0);
}
public XmlSchemaValidator (string[] args)
{
for (int i=0; i < args.Length; i++)
{
if (args[i] == "-h" ||
args[i] == "--help" ||
args[i] == "-?")
{
Usage();
}
if (_xmlfile == null)
_xmlfile = args[i];
else if (_xsdfile == null)
_xsdfile = args[i];
else
Usage();
}
// default values
if (_xmlfile == null || _xsdfile == null)
Usage();
}
public static void Main(string[] args)
{
try
{
new XmlSchemaValidator(args)
.Validate();
}
catch (System.Exception exc1)
{
Console.WriteLine("Exception: {0}", exc1.ToString());
Usage();
}
}
}
}
+0
La pregunta era para la herramienta de línea de comandos –
+3
¿Ha publicado este ejemplo pero puso "Todos los derechos reservados" en la parte superior? –
0
mono-xmltool, ver
- https://github.com/mono/linux-packaging-mono/blob/master/man/mono-xmltool.1
- http://manpages.ubuntu.com/manpages/jaunty/man1/mono-xmltool.1.html
por ejemplo
mono-xmltool --validate-xsd schema.xsd doc.xml
Cuestiones relacionadas
- 1. Validación de Xml con el esquema XSD
- 2. Validación completa del esquema XML
- 3. validación de esquema XML
- 4. Generar esquema de Json a partir del esquema XML (XSD)
- 5. Generación de instancias XML a partir del esquema XML (xsd)
- 6. ¿Validación del esquema XML síncrono? .NET 3.5
- 7. La validación del esquema Xml falla con MemoryStream en C#
- 8. realizando validación xml contra xsd
- 9. ¿Validar un esquema XSD?
- 10. Validación de esquema XML de XElement
- 11. ¿Alguna herramienta para generar un esquema XSD a partir de un documento de instancia XML?
- 12. XML DTD/Esquema de la validación en Maven
- 13. herramienta para generar un archivo xml desde xsd (para probar)
- 14. ¿Existe un esquema XML oficial (xsd) para EDI X12 856?
- 15. Validación XSD automática
- 16. Validación XML con Schematron/XSD en C#
- 17. Validar un esquema XSD usando XSD
- 18. ¿Adjuntar automáticamente archivos XML al esquema XSD en Visual Studio?
- 19. Visual Studio 2010: Esquema XML XSD para Clases dentro del IDE
- 20. Esquema de un XSD?
- 21. Validación de esquema XML con RelaxNG
- 22. MSXML VBA: validación de XML contra XSD: "El '' espacio de nombres proporcionado difiere del targetNamespace del esquema ''.
- 23. Error de validación XML con el esquema XSD anidado - Tipo no declarado
- 24. Convertir XSD en esquema RDF
- 25. Validación de la exclusividad de atributos con XSD a través del documento XML
- 26. Aplanar documentos de esquema XSD (HR-XML 3.0)
- 27. Validación Java xsd de xml sin espacio de nombres
- 28. Validar XML con XSD
- 29. Desactivar la validación XSD de archivos de resorte
- 30. ¿Cómo validar big xml contra el esquema xsd?
Cualquier forma de evitar tener que especificar el esquema? (dado que ya está especificado en el XML como 'xsi: schemaLocation' ...) – Will
-opción válida para validar el esquema con el xml especificado dentro, pero creo que también se necesita un esquema. –