{"id":28195522,"url":"https://github.com/h1alexbel/sxl","last_synced_at":"2025-06-15T04:07:36.468Z","repository":{"id":292910177,"uuid":"982298398","full_name":"h1alexbel/sxl","owner":"h1alexbel","description":"XML transformation language, similar to XSLT, but simpler","archived":false,"fork":false,"pushed_at":"2025-05-12T19:20:56.000Z","size":13,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-12T19:49:48.947Z","etag":null,"topics":["programming-language","xml","xml-transformation","xslt"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h1alexbel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-12T17:07:48.000Z","updated_at":"2025-05-12T19:21:00.000Z","dependencies_parsed_at":"2025-05-12T19:50:00.608Z","dependency_job_id":"45926edf-249a-472c-ab65-b2bbd70d3732","html_url":"https://github.com/h1alexbel/sxl","commit_stats":null,"previous_names":["h1alexbel/sxl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/h1alexbel/sxl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1alexbel%2Fsxl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1alexbel%2Fsxl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1alexbel%2Fsxl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1alexbel%2Fsxl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h1alexbel","download_url":"https://codeload.github.com/h1alexbel/sxl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h1alexbel%2Fsxl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259919462,"owners_count":22932073,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["programming-language","xml","xml-transformation","xslt"],"created_at":"2025-05-16T14:13:26.581Z","updated_at":"2025-06-15T04:07:36.450Z","avatar_url":"https://github.com/h1alexbel.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SXL - Simpler XML Transformation Language\n\n**Motivation**. [XSLT] is a functional language for [XML] transformations. It\nis widely used in [web development][XML-in-Browser], [ETL] pipelines, and even\nin language design ([EO-to-Java compiler][EO] is written in XSLT). However, the\ncomplexity of the language is often a barrier for programmers not familiar with\nXML. That's why we created a new language, with the same semantic as XSLT 3.0,\nbut with a simpler syntax, and user-friendly tooling.\n\n## Quick Start\n\nConsider this XML:\n\n```xml\n\u003cbooks\u003e\n  \u003cbook author=\"Elliotte Rusty Harold\"\u003eXML in a Nutshell\u003c/book\u003e\n  \u003cbook author=\"Steve McConnell\"\u003eCode Complete\u003c/book\u003e\n\u003c/books\u003e\n```\n\nIn SXL, we might transform it like this:\n\n```xml\nmatch -\u003e \"/books\"\n  shelf\n    apply-templates -\u003e \"book\"\n\ntemplate -\u003e \"book\"\n  entry\n    text()\n    \" by \"\n    @author\n```\n\nYou should have this XML in the result:\n\n```xml\n\u003cshelf\u003e\n  \u003centry\u003eXML in a Nutshell by Elliotte Rusty Harold\u003c/entry\u003e\n  \u003centry\u003eCode Complete by Steve McConnell\u003c/entry\u003e\n\u003c/shelf\u003e\n```\n\nBTW, this is how XSLT stylesheet will look like to achieve the same:\n\n```xsl\n\u003cxsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"3.0\"\u003e\n  \u003cxsl:output method=\"xml\"/\u003e\n  \u003cxsl:template match=\"/books\"\u003e\n    \u003cshelf\u003e\n      \u003cxsl:apply-templates select=\"book\"/\u003e\n    \u003c/shelf\u003e\n  \u003c/xsl:template\u003e\n  \u003cxsl:template match=\"book\"\u003e\n    \u003centry\u003e\n      \u003cxsl:value-of select=\"text()\"/\u003e\n      \u003cxsl:text\u003e by \u003c/xsl:text\u003e\n      \u003cxsl:value-of select=\"@author\"/\u003e\n    \u003c/entry\u003e\n  \u003c/xsl:template\u003e\n\u003c/xsl:stylesheet\u003e\n```\n\n[XSLT]: https://en.wikipedia.org/wiki/XSLT\n[XML]: https://en.wikipedia.org/wiki/XML\n[ETL]: https://en.wikipedia.org/wiki/Extract,_transform,_load\n[EO]: https://github.com/objectioanary/eo\n[XML-in-Browser]: https://www.yegor256.com/2014/06/25/xml-and-xslt-in-browser.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh1alexbel%2Fsxl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh1alexbel%2Fsxl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh1alexbel%2Fsxl/lists"}