{"id":16782429,"url":"https://github.com/olivergondza/saxeed","last_synced_at":"2025-03-16T21:22:35.998Z","repository":{"id":230211491,"uuid":"777196864","full_name":"olivergondza/saxeed","owner":"olivergondza","description":"Sufficiently Advanced XML Eventing Editor","archived":false,"fork":false,"pushed_at":"2024-08-08T07:29:35.000Z","size":2288,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T07:46:18.306Z","etag":null,"topics":["java","low-memory-footprint","streaming-api","transformation","xml"],"latest_commit_sha":null,"homepage":"","language":"Java","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/olivergondza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-03-25T11:53:52.000Z","updated_at":"2024-08-08T07:29:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"22148138-f559-49b4-a67e-20d0a3dfb948","html_url":"https://github.com/olivergondza/saxeed","commit_stats":null,"previous_names":["olivergondza/saxeed"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olivergondza%2Fsaxeed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olivergondza%2Fsaxeed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olivergondza%2Fsaxeed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olivergondza%2Fsaxeed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olivergondza","download_url":"https://codeload.github.com/olivergondza/saxeed/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243933449,"owners_count":20370989,"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":["java","low-memory-footprint","streaming-api","transformation","xml"],"created_at":"2024-10-13T07:45:11.681Z","updated_at":"2025-03-16T21:22:35.970Z","avatar_url":"https://github.com/olivergondza.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sufficiently Advanced XML Eventing EDitor\n\nYour user-friendly, namespace aware tool to transform XML files easily, with memory consumption in mind.\n\n[![Saxeed CI](https://github.com/olivergondza/saxeed/actions/workflows/ci.yaml/badge.svg)](https://github.com/olivergondza/saxeed/actions/workflows/ci.yaml)\n[![Maven Central Version](https://img.shields.io/maven-central/v/com.github.olivergondza/saxeed)](https://central.sonatype.com/artifact/com.github.olivergondza/saxeed)\n[![javadoc](https://javadoc.io/badge2/com.github.olivergondza/saxeed/javadoc.svg)](https://javadoc.io/doc/com.github.olivergondza/saxeed)\n\n## Spirit\n\nSaxeed, a SAX wrapper, traverses XML input document performing predefined transformations, and writes the resulting XML document to declared output.\n\nIt accepts the constraints of \"streaming\" (or \"eventing\") approach — elements are visited one-by-one with no option to move around the stream.\nThis is a tradeoff we accept in return for predictable memory footprint.\n\nThe very nature of stream-based processing restricts the data that are available in every moment, and modifications that are permitted.\nTo accommodate that, developer needs to accept a paradigm shift compared to, say, dom4j.\n\nSaxeed strives to add as much convenience on top of plain old SAX, while adding as little of an overhead.\n\n### Capabilities\n\nEach tag visitor can do the following: \n\n| operation / event                       | Tag Start              | Tag End                | Text Content |\n|-----------------------------------------|------------------------|------------------------|--------------|\n| Access Tag attributes                   | ☑                      | ☑                      | ☑            |\n| Access Parent(s) Tag attributes         | ☑                      | ☑                      | ☑            |\n| Add Child Tags/Text                     | ☑                      | ☑ (before closing tag) | ☑            |\n| Add Sibling Tags/text (NOT IMPLEMENTED) | ☑ (before and after)   | ☑ (only after)         | ☑            |\n| Add Parent Tag (`wrapWith()`)           | ☑                      | ☐                      | ☑            |\n| Change Attributes                       | ☑                      | ☐                      | ☐            |\n| Delete Tag (`unwrap()`)                 | ☑                      | ☐                      | n/a          |\n| Delete Tag Recursively (`skip()`)       | ☑                      | ☐                      | n/a          |         \n| Delete Child Tags (`empty()`)           | ☑                      | ☐                      | n/a          |\n\nMore complex changes can be implemented by subscribing visitors to multiple tags, and retaining information between their visits.  \n\n## Usage\n\n- [Basic Concepts](./docs/BASICS.md)\n- [Implementing Visitors](./docs/VISITORS.md)\n\n## Maintenance\n\n### Contributing\n\nSaxeed is an Open Source library, and we welcome contribution. File your Issue or an MR now!\n\n### Releasing\n\nThe library is released to maven central.\n\nTo produce a new release, run `git tag X.Y.Z` and then `mvn deploy`.\n\nTo deploy `-SNAPSHOT`, run `mvn deploy` on a commit without tag.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folivergondza%2Fsaxeed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folivergondza%2Fsaxeed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folivergondza%2Fsaxeed/lists"}