Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/exasol/schemas
XML and JSON schemas for validators
https://github.com/exasol/schemas
edml exasol exasol-document-mapping-language exasol-integration json-schema specification xml-schema
Last synced: about 1 month ago
JSON representation
XML and JSON schemas for validators
- Host: GitHub
- URL: https://github.com/exasol/schemas
- Owner: exasol
- License: mit
- Created: 2020-09-07T12:05:08.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-07-30T06:59:09.000Z (5 months ago)
- Last Synced: 2024-07-30T10:09:04.611Z (5 months ago)
- Topics: edml, exasol, exasol-document-mapping-language, exasol-integration, json-schema, specification, xml-schema
- Language: Python
- Homepage: https://schemas.exasol.com
- Size: 632 KB
- Stars: 1
- Watchers: 9
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Schema Collection
This repository hosts an collection of XML and JSON schemas. These schemas are primarily designed for validators and Integrated Development Environments (IDEs) that support auto-completion, enhancing the development experience.
## Schemas
The repository includes various schemas such as:
- **Exasol Document Mapping Language (EDML):** A schema for mapping documents in Exasol.
- **Exasol Error Code Report (error_code_report):** Used as common error reporting format within Exasol.
- **Exasol Project Metrics (project-metrics):** A schema for tracking project metrics within Exasol.For detailed information on these schemas, visit [schemas.exasol.com](https://schemas.exasol.com). To explore the most current local versions, refer to the Developers Guide section.
## Developers Guide
The contents of this repository are automatically published as a website accessible at [schemas.exasol.com](https://schemas.exasol.com). Contributions are welcome!
To contribute, please create a pull request in the [GitHub repository](https://github.com/exasol/schemas).## Overview & Structure
This repository adheres to the principle of "convention over configuration", with a structure outlined as follows:
- **Schemas Directory:** `schemas//` - Contains different versions of each schema.
```
schemas
├── schema
│ ├── MAJOR.MINOR.PATCH.json
...
e.g.:
schemas
├── edml
│ ├── 1.0.0.json
│ ├── 1.1.0.json
│ ├── 1.2.0.json
│ ├── 1.3.0.json
│ ├── 1.4.0.json
│ ├── 1.5.0.json
│ └── 2.0.0.json
├── error_code_report
│ ├── 0.1.0.json
│ ├── 0.2.0.json
│ └── 1.0.0.json
└── project-metrics
└── 0.1.0.json
...
```
- **Examples Directory:** `examples//` - Provides example instances for each schema version.
```
examples
├── schema
│ ├── MAJOR.MINOR.PATCH.json
...
e.g.:
examples
├── error_code_report
│ ├── 0.1.0.json
│ ├── 0.2.0.json
│ └── 1.0.0.json
...
```## Deployment
Deployment is managed through a cron job that automatically updates from the `gh-pages` branch every 5 minutes. The updated content is then published on [schemas.exasol.com](https://schemas.exasol.com).
## Testing
For testing purposes please deploy to the branch `gh-pages-test`.## Setting up the Project / Development Environment
### Prerequisites
- Python >= 3.10
- Poetry### Setting up Poetry
To set up Poetry, execute the following commands:
```shell
poetry shell
poetry install
```## Adding a New Schema
Guidelines for introducing a new schema to the collection:
### New Schema Version
To add a new version of an existing schema:1. Create and add files following the conventions mentioned in the Overview and Structure section.
2. Create a Pull Request (PR).
3. Once the PR is merged, the system will automatically pick it up and publish it.**Note:** There may be a delay of up to ~5 minutes.
### Adding the First Schema Version
To add a completely new schema:1. Create files according to the conventions mentioned in Overview and Structure.
2. Add the new schema to the schemas section of this README.
3. Add a new section to the index.jinja template, located in src/exasol/schemas/templates/index.jinja.Example HTML snippet for the new schema:
```html
schema-name
{# Include details about the schema here. You can add helpful information, links, etc., as long as it's HTML/jinja compatible. #}
{{ schema_list(schemas['schema-name'], examples) }}
```
**Attention:** Make sure to replace `schema-name` in the template with the actual name of your schema.