Ir al contenido

Analice su primer modelo

parseArchiModel acepta solo texto XML. Leer un archivo del disco, usar la API File del navegador u obtener XML por red es responsabilidad de quien llama — esto mantiene el paquete utilizable desde Node.js, bundlers de navegador y pruebas sin acoplarlo a un entorno de E/S específico.

import {
parseArchiModel,
validateArchiModel,
} from '@cda/archi-semantic-core';
const model = parseArchiModel(xml);
console.log(model.elements);
console.log(model.relationships);
console.log(model.views);
console.log(model.elements[0].type);
// e.g. "ApplicationComponent", not "archimate:ApplicationComponent"
const { valid, errors } = validateArchiModel(model);
import { readFile } from 'node:fs/promises';
import { parseArchiModel } from '@cda/archi-semantic-core';
const xml = await readFile('MyModel.archimate', 'utf8');
const model = parseArchiModel(xml);

parseArchiModel devuelve un ArchiModel cuyas colecciones son arrays planos en el orden del XML fuente:

ColecciónContenido
foldersEl árbol del modelo (Business, Application, Relations, Views, carpetas personalizadas).
elementsTodos los elementos semánticos, cualquier tipo ArchiMate.
relationshipsTodas las relaciones semánticas.
viewsTodas las definiciones de diagrama/vista.
diagramObjectsNodos visuales: objetos de diagrama, grupos, referencias a modelos.
diagramConnectionsConexiones visuales entre objetos de diagrama.
notesNotas de diagrama de texto libre.
profilesEspecializaciones y Perfiles genéricos declarados en la raíz del modelo.

Las referencias cruzadas entre colecciones son ids de cadena simples — búsquelos en el array correspondiente o construya un Map con clave id para búsquedas repetidas (consulte Construir índices de búsqueda).

parseArchiModel lanza una excepción cuando:

  • la entrada no es una cadena;
  • el XML no está bien formado.

No lanza una excepción para un modelo semánticamente roto (ids faltantes, referencias colgantes, valores de Unión sin resolver) — use validateArchiModel para las comprobaciones estructurales.