https://github.com/lexml/jsonix-lexml
Conversão de formato XML LexML Brasil de e para JSON
https://github.com/lexml/jsonix-lexml
Last synced: 8 months ago
JSON representation
Conversão de formato XML LexML Brasil de e para JSON
- Host: GitHub
- URL: https://github.com/lexml/jsonix-lexml
- Owner: lexml
- License: gpl-2.0
- Created: 2021-11-24T15:16:48.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-16T02:42:48.000Z (about 4 years ago)
- Last Synced: 2025-02-22T20:35:30.354Z (over 1 year ago)
- Language: JavaScript
- Size: 1.44 MB
- Stars: 2
- Watchers: 7
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# jsonix-lexml
## Como executar
É possível executar o conversor diretamente de uma [imagem docker](https://hub.docker.com/repository/docker/lexmlbr/jsonix-lexml):
```
# Para conversão de XML para JSON:
docker run -i --rm lexmlbr/jsonix-lexml:latest tojson < {arquivo_xml.xml} > {arquivo_json.json}
# Para conversão de JSON para XML:
docker run -i --rm lexmlbr/jsonix-lexml:latest toxml < {arquivo_json.json} > {arquivo_xml.xml}
```
Também é possível executar o conversor diretamente, através do executável construído como descrito
em [#Como compilar o conversor diretamente](#como-compilar-o-conversor-diretamente):
```
jsonix-lexml-linux {tojson|toxml} [arq_entrada] [-o arq_saida]
```
Onde:
- `arq_entrada` especifica o arquivo fonte, xml ou json, conforme o comando (resp. `tojson` e `toxml`).
Se omitido, o conversor lê da entrada padrão.
- `-o arq_saida` especifica o arquivo de saída. Se omitido, o conversor grava para a saída padrão.
Releases dos executáveis para os três ambientes suportados (Linux, MacOS X e Windows) podem
ser encontrados na página de [releases](https://github.com/lexml/jsonix-lexml/releases/).
## Como usar o executável em imagens docker
O conversor é um arquivo executável presente na imagem docker, em `/jsonix-lexml-linux`. O executável
pode ser usado em outras imagens docker **baseadas em glibc** ou com suporte à compatibilidade com glibc e libstdc++.
Por exemplo, para rodar em uma imagem baseada em [Alpine Linux](https://hub.docker.com/_/alpine), é preciso
acrescentar os pacotes `gcompat` e `libstdc++`:
```
apk add gcompat libstdc++
```
## Como gerar a imagem docker
A compilação é feita em ambiente docker. Para gerar uma imagem execute `docker build -t jsonix-lexml:latest .`.
## Como compilar o conversor diretamente
Para compilar os executáveis diretamente, sem o uso de docker, é preciso ter o NodeJS 14 e Java 11 no caminho e executar os seguintes passos no diretório do projeto:
1 - Preparar o ambiente NodeJS:
```
npm install
```
2 - Executar script "build:exe":
```
npm run build:exe
```
Como resultado, serão gerados o diretório `mappings` e três executáveis, `jsonix-lexml-linux`, `jsonix-lexml-macos` e `jsonix-lexml-win.exe`, utilizáveis, respectivamente, em ambientes Linux (glibc), MacOS X e Windows.
## Mapeamentos JSON
O compilador jsonix gera uma série de arquivos que descrevem o mapeamento JSON gerado à partir dos esquemas do formato LexML. Esses mapeamentos são gerados aṕos o passo (3) descrito acima (no diretório `mappings`), e podem ser encontrados também na imagem docker, no caminho `/mappings`. Eles podem ser usados, juntamente com a biblioteca [jsonix](https://github.com/highsource/jsonix), para manipular arquivos json gerados à partir da conversão, ou para construir arquivos json compatíveis para posterior conversão para formato LexML.
## Uso da bibloteca em Javascript
> Orientações sobre como usar a biblioteca jsonix-lexml em javascript podem ser encontradas em [README.npm.md](README.npm.md) .