Quiero construir un convertidor de datos para XML a JSON, que se ocupe de los archivos meteorológicos. Esos archivos meteorológicos tienen múltiples 'incluir' e 'importar' y 'esquemas', y quiero saber cómo manejarlos usando xml4js, o alguna otra biblioteca de javascript.
Este es un ejemplo de mis archivos xsd. Como puede ver allí, incluye la ubicación del esquema y varias importaciones:
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns:iwxxm="http://icao.int/iwxxm/3.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:aixm="http://www.aixm.aero/schema/5.1.1" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://icao.int/iwxxm/3.0" version="3.0.0"> <include schemaLocation="./common.xsd"/> <import namespace="http://www.aixm.aero/schema/5.1.1" schemaLocation="http://www.aixm.aero/schema/5.1.1_profiles/AIXM_WX/5.1.1b/AIXM_Features.xsd"/> <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>Para el idioma del convertidor, estoy tratando de usar javascript o mecanografiado. Quiero usar la biblioteca xml4js para este proyecto. Quiero pedir algunos consejos sobre cómo definir la obtención de múltiples esquemas/importar o incluir.
Como referencia, este es mi código de convertidor:
var fs = require('fs'); var util = require('util'); var xml4js = require('xml4js'); // Most of xml2js options should still work var options = {}; var parser = new xml4js.Parser(options); // Default is not to download schemas automatically, so we should add it manually var xsd = fs.readFileSync('./tests/xsd/IWXXM/airmet.xsd', {encoding: 'utf-8'}); var xml = fs.readFileSync('./tests/xml/IWXXM/airmet-A6-1a-TS.xml', {encoding: 'utf-8'}); parser.addSchema('http://icao.int/iwxxm/3.0', xsd, function (err, importsAndIncludes) { // importsAndIncludes contains schemas to be added as well to satisfy all imports and includes found in xsd file parser.parseString(xml, function (err, result) { console.log(util.inspect(result, false, null)); }); });Quiero resolver esa parte de codificación importsandincludes, pero me siento perdido de alguna manera.
No estoy seguro de que esta sea la forma correcta de hacer la pregunta aquí... :( Soy un novato en Stackoverflow. Entonces, si necesita más recursos o información, ¡avíseme!