Skip to content

opensourceworks-org/yaxp

versions downloads versions downloads downloads versions version downloads

<yaxp ⚡> Yet Another XSD Parser

📌 Note: This project is still under heavy development, and its APIs are subject to change.

🏃 RUNNING EXAMPLE USING WASM
<xsd ⚡> convert

Introduction

Using roxmltree to parse XML files.

Couldn't find a good xsd parser that can convert xsd schema to popular data processing library formats.
This project will read custom SimpleType and ComplexType from xsd schema and convert them to other formats, trying to stay as close to the original schema as possible. Even though arrow might be common to most, each library has its own quirks and limitations.

Converts xsd schema to:

  • arrow
  • avro
  • duckdb (read_csv columns/types)
  • json
  • json representation of spark schema
  • jsonschema
  • pandas
  • polars
  • protobuf

Project Structure

crates
├── pyaxp               -> Python bindings 
├── yaxp-cli            -> cli version
├── yaxp-common         -> lib (deprecated, replaced by yaxp-core)
└── yaxp-core           -> main lib crate, core

Downloads

TODO

  • pyo3/maturin support
  • parameter for timezone unit/TZ (testing with polars)
  • support for different xsd file encoding: UTF-16, UTF16LE, ...
  • more tests
  • strict schema validation to spec (xsd, avro, json-schema, ...)
  • example implementation <xsd ⚡> convert
  • option to lowercase column names

About

yet another xsd parser

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published