¿Alguien sabe cómo generar un JSON schema a partir de un esquema XML existente (archivo XSD)? ¿Hay alguna herramienta disponible para esto?Generar esquema de Json a partir del esquema XML (XSD)
Respuesta
Un año después de que se formuló originalmente esta pregunta, JSON Schema sigue siendo un borrador del documento IETF. Al momento de escribir esto (18 de octubre de 2011), el grupo de trabajo está tratando de lograr un acuerdo sobre el borrador 4 de la especificación. Aunque hay algunas implementaciones de validación especulativa (ver http://json-schema.org/), la mayoría de los vendedores de herramientas no han invertido mucho esfuerzo en herramientas que implementan el desarrollo, edición o conversión de esquemas JSON.
Los últimos borradores del borrador de IETF expiraron en agosto de 2013 y parece que nadie está siguiendo este esfuerzo por más tiempo. –
Otorgo esto es viejo, pero incluso en el contexto histórico esto no responde a la pregunta. – vossad01
Es cierto, pero después de convertir json en xml con xmlspy, puede usar la aplicación trang (http://www.thaiopensource.com/relaxng/trang.html) para crear un xsd a partir de archivos xml.
pero va en la dirección incorrecta – vipw
El Esquema JSON no está destinado a ser una característica equivalente con el Esquema XML. Hay características en una pero no en la otra.
En general, puede crear una asignación de XML a JSON y viceversa, pero ese no es el caso para el esquema XML y el esquema JSON.
Dicho esto, si ha mapeado un archivo XML en JSON, es bastante posible crear un esquema JSON que valide ese JSON casi de la misma forma que el XSD valida el XML. Pero no es un mapeo directo. Y no es posible garantizar que valide el JSON exactamente igual que el XSD valida el XML.
Por esta razón, y a menos que las dos especificaciones estén hechas para ser compatibles al 100%, la migración de un sistema de validación de XML/XSD a JSON/JSON Schema requerirá la intervención humana.
No entiendo esto. ¿Puedes dar un ejemplo? – Fenil
Digamos que usted tiene algo así como
Negación: yo soy el autor de Jsonix, un poderoso XML de código abierto < - biblioteca mapping> JSON JavaScript.
Hoy he lanzado la nueva versión de Jsonix Schema Compiler, con la nueva función JSON Schema generation.
Tomemos el esquema Purchase Order por ejemplo. He aquí un fragmento:
<xsd:element name="purchaseOrder" type="PurchaseOrderType"/>
<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:element name="shipTo" type="USAddress"/>
<xsd:element name="billTo" type="USAddress"/>
<xsd:element ref="comment" minOccurs="0"/>
<xsd:element name="items" type="Items"/>
</xsd:sequence>
<xsd:attribute name="orderDate" type="xsd:date"/>
</xsd:complexType>
puede compilar este esquema por medio de la herramienta de línea de comandos proporcionada:
java -jar jsonix-schema-compiler-full.jar
-generateJsonSchema
-p PO
schemas/purchaseorder.xsd
el compilador genera Jsonix mappings así la matching JSON Schema.
Esto es lo que el resultado se parece a (editado por brevedad):
{
"id":"PurchaseOrder.jsonschema#",
"definitions":{
"PurchaseOrderType":{
"type":"object",
"title":"PurchaseOrderType",
"properties":{
"shipTo":{
"title":"shipTo",
"allOf":[
{
"$ref":"#/definitions/USAddress"
}
]
},
"billTo":{
"title":"billTo",
"allOf":[
{
"$ref":"#/definitions/USAddress"
}
]
}, ...
}
},
"USAddress":{ ... }, ...
},
"anyOf":[
{
"type":"object",
"properties":{
"name":{
"$ref":"http://www.jsonix.org/jsonschemas/w3c/2001/XMLSchema.jsonschema#/definitions/QName"
},
"value":{
"$ref":"#/definitions/PurchaseOrderType"
}
},
"elementName":{
"localPart":"purchaseOrder",
"namespaceURI":""
}
}
]
}
Ahora bien, este esquema JSON se deriva del esquema XML original. No es exactamente una transformación 1: 1, pero muy muy cerca.
El esquema JSON generado coincide con los mapeos generados Jsonix. Entonces, si usa Jsonix para XML < -> Conversión JSON, debería poder validar JSON con el Esquema JSON generado. También contiene todos los metadatos requeridos del Esquema XML de origen (como los nombres de elementos, atributos y tipos).
Exención de responsabilidad: Por el momento esta es una función nueva y experimental.Hay ciertos conocidos limitations and missing functionality. Pero espero que esto se manifieste y madure muy rápido.
Enlaces:
- Demo Purchase Order Project for NPM - sólo echa un vistazo y
npm install
- Documentation
- Current release
- Jsonix Schema Compiler on npmjs.com
responsabilidad: yo soy el autor de jgeXml.
jgexml tiene utilidad basada en Node.js xsd2json
que realiza una transformación entre un esquema XML (XSD) y un archivo de esquema JSON.
Al igual que con otras opciones, no es una conversión 1: 1, y es posible que necesite editar manualmente la salida para mejorar la validación del esquema JSON, pero se ha utilizado para representar un esquema XML complejo dentro de un OpenAPI) definición.
Una muestra de la purchaseorder.xsd dada en otra respuesta se representa como:
"PurchaseOrderType": {
"type": "object",
"properties": {
"shipTo": {
"$ref": "#/definitions/USAddress"
},
"billTo": {
"$ref": "#/definitions/USAddress"
},
"comment": {
"$ref": "#/definitions/comment"
},
"items": {
"$ref": "#/definitions/Items"
},
"orderDate": {
"type": "string",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}.*$"
}
},
Copie su esquema XML aquí & obtener el código de esquema JSON a la online tools que están disponibles para generar esquema JSON de esquema XML .
- 1. Generación de instancias XML a partir del esquema XML (xsd)
- 2. Generar clases C# del esquema JSON
- 3. ¿Hay alguna herramienta para generar un esquema JSON desde un esquema XML a través de Java?
- 4. ¿Alguna herramienta para generar un esquema XSD a partir de un documento de instancia XML?
- 5. Generar modelos a partir del esquema de raíles
- 6. Esquema de un XSD?
- 7. ¿Existe una clase para generar un documento XML de muestra a partir del esquema XSD en .NET
- 8. Validación de Xml con el esquema XSD
- 9. Validar un esquema XSD usando XSD
- 10. ¿Validar un esquema XSD?
- 11. Cómo construir una base de datos a partir de un esquema XSD e importar datos XML
- 12. Generar clases de Java a partir de archivos .XSD ...?
- 13. Herramienta para la validación del esquema XML XSD
- 14. validación de esquema XML
- 15. error al generar una clase de archivo de esquema XSD
- 16. Convertir XSD en esquema RDF
- 17. Múltiples archivos de esquema XSD a clases C#
- 18. ¿Cómo generar Java Enum desde el esquema XML con JAXB?
- 19. tiene JSON un esquema
- 20. Esquema XML a clases Java con XJC
- 21. Hacer referencia a un esquema XSD dentro del archivo jar
- 22. ¿Cómo generar código Pascal a partir de un esquema XML en Delphi Prism?
- 23. ¿Cómo puedo generar programáticamente un esquema xml a partir de un tipo?
- 24. Aplanar documentos de esquema XSD (HR-XML 3.0)
- 25. Esquema XML a las clases C++
- 26. ¿Qué herramientas accesibles de Python puede usar para generar XSD a partir de un documento XML?
- 27. Validación completa del esquema XML
- 28. C++ Generador de código de esquema XML
- 29. cómo generar XML a partir de un esquema XML en Java y datos de fuentes en él?
- 30. XML esquema XSD - Forzar valores de atributo único en el esquema
Creo que la verdadera pregunta es: "¿Es posible hacer una asignación entre el Esquema JSON y el Esquema XML?" no está fuera de tema. Tal vez la pregunta pueda ser reformulada. –
Falco Nogatz hizo una tesis de BSc en 2013 dando como resultado [xsd2json] (https://github.com/fnogatz/xsd2json). – supervacuo