{"id":23521234,"url":"https://github.com/leplusorg/docker-xml","last_synced_at":"2026-01-28T15:31:52.755Z","repository":{"id":37828847,"uuid":"225691707","full_name":"leplusorg/docker-xml","owner":"leplusorg","description":"Multi-platform Docker container with utilities to process XML data (xmllint, xsltproc, xmlindent, xmlto...).","archived":false,"fork":false,"pushed_at":"2026-01-24T13:02:24.000Z","size":1111,"stargazers_count":8,"open_issues_count":6,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-24T13:38:56.130Z","etag":null,"topics":["docker","docker-container","docker-image","dockerfile","saxon","xlst","xml","xml-parser","xml-parsing","xml-schema","xml-transformation","xmllint","xpath","xpath-expression","xpath-queries","xsd","xsd-schema"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/leplusorg/xml","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leplusorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-12-03T18:45:37.000Z","updated_at":"2026-01-24T13:00:41.000Z","dependencies_parsed_at":"2023-12-18T05:39:51.507Z","dependency_job_id":"9e337cf2-0ede-4b5b-b26d-1b0a322f54a3","html_url":"https://github.com/leplusorg/docker-xml","commit_stats":{"total_commits":126,"total_committers":3,"mean_commits":42.0,"dds":"0.19841269841269837","last_synced_commit":"476335928a56901fcf0c7486d294419914a3a190"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/leplusorg/docker-xml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-xml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-xml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-xml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-xml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leplusorg","download_url":"https://codeload.github.com/leplusorg/docker-xml/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-xml/sbom","scorecard":{"id":756696,"data":{"date":"2025-08-22T20:55:33Z","repo":{"name":"github.com/leplusorg/docker-xml","commit":"7ae455c3882872086e269af1659a46506f381fd8"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":7.4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/26 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  23 out of  23 GitHub-owned GitHubAction dependencies pinned","Info:  18 out of  18 third-party GitHubAction dependencies pinned","Info:   1 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#pinned-dependencies"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dependency-update-tool"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'packages' permission set to 'read': .github/workflows/codeql-analysis.yml:27","Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:30","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:31","Info: jobLevel 'contents' permission set to 'read': .github/workflows/devskim.yml:25","Info: jobLevel 'actions' permission set to 'read': .github/workflows/devskim.yml:24","Info: jobLevel 'contents' permission set to 'read': .github/workflows/super-linter.yml:40","Info: jobLevel 'packages' permission set to 'read': .github/workflows/super-linter.yml:41","Warn: jobLevel 'statuses' permission set to 'write': .github/workflows/super-linter.yml:42","Info: found token with 'none' permissions: .github/workflows/apk-check-versions.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/automerge.yml:7","Warn: topLevel 'actions' permission set to 'write': .github/workflows/automerge.yml:6","Info: found token with 'none' permissions: .github/workflows/codeql-analysis.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependency-review.yml:6","Info: found token with 'none' permissions: .github/workflows/devskim.yml:1","Info: found token with 'none' permissions: .github/workflows/dockerhub.yml:1","Info: found token with 'none' permissions: .github/workflows/maven-check-versions.yml:1","Info: found token with 'none' permissions: .github/workflows/maven-dependency-check.yml:1","Info: found token with 'none' permissions: .github/workflows/msdo.yml:1","Info: topLevel 'actions' permission set to 'read': .github/workflows/osv-scanner.yml:30","Warn: topLevel 'security-events' permission set to 'write': .github/workflows/osv-scanner.yml:26","Info: topLevel 'contents' permission set to 'read': .github/workflows/osv-scanner.yml:28","Info: found token with 'none' permissions: .github/workflows/pipx-check-versions.yml:1","Info: topLevel permissions set to 'read-all': .github/workflows/scorecards.yml:12","Info: found token with 'none' permissions: .github/workflows/super-linter.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/update-prs.yml:12"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker-build-push.yml:16"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#fuzzing"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (5) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#sast"}},{"name":"Contributors","score":3,"reason":"project has 1 contributing companies or organizations -- score normalized to 3","details":["Info: found contributions from: leplusorg"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#contributors"}},{"name":"CI-Tests","score":10,"reason":"5 out of 5 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#ci-tests"}}]},"last_synced_at":"2025-08-22T21:53:09.383Z","repository_id":37828847,"created_at":"2025-08-22T21:53:09.383Z","updated_at":"2025-08-22T21:53:09.383Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28846341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["docker","docker-container","docker-image","dockerfile","saxon","xlst","xml","xml-parser","xml-parsing","xml-schema","xml-transformation","xmllint","xpath","xpath-expression","xpath-queries","xsd","xsd-schema"],"created_at":"2024-12-25T17:11:28.421Z","updated_at":"2026-01-28T15:31:52.750Z","avatar_url":"https://github.com/leplusorg.png","language":"Dockerfile","readme":"# XML\n\nMulti-platform Docker container with utilities to process XML data (`xmllint`, `xsltproc`, `xmlindent`, `xmlto`...).\n\n[![Dockerfile](https://img.shields.io/badge/GitHub-Dockerfile-blue)](xml/Dockerfile)\n[![Docker Build](https://github.com/leplusorg/docker-xml/workflows/Docker/badge.svg)](https://github.com/leplusorg/docker-xml/actions?query=workflow:\"Docker\")\n[![Docker Stars](https://img.shields.io/docker/stars/leplusorg/xml)](https://hub.docker.com/r/leplusorg/xml)\n[![Docker Pulls](https://img.shields.io/docker/pulls/leplusorg/xml)](https://hub.docker.com/r/leplusorg/xml)\n[![Docker Version](https://img.shields.io/docker/v/leplusorg/xml?sort=semver)](https://hub.docker.com/r/leplusorg/xml)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/10067/badge)](https://bestpractices.coreinfrastructure.org/projects/10067)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/leplusorg/docker-xml/badge)](https://securityscorecards.dev/viewer/?uri=github.com/leplusorg/docker-xml)\n\n## Example not using the filesystem\n\nLet's say that you have a file `foo.xml` that you want to reformat and save the result to `bar.xml`:\n\n**Mac/Linux**\n\n```bash\ncat foo.xml | docker run --rm -i --net=none leplusorg/xml xmllint - \u003e bar.xml\n```\n\n**Windows**\n\n```batch\ntype foo.xml | docker run --rm -i --net=none leplusorg/xml xmllint - \u003e bar.xml\n```\n\n## Example requiring the filesystem\n\nAssuming that you have a file `foo.xml` in your current working directory that you want to validate using `foo.xsd`:\n\n**Mac/Linux**\n\n```bash\ndocker run --rm -t --user=\"$(id -u):$(id -g)\" --net=none -v \"$(pwd):/tmp\" leplusorg/xml xmllint --schema /tmp/foo.xsd /tmp/foo.xml --noout\n```\n\n**Windows**\n\nIn `cmd`:\n\n```batch\ndocker run --rm -t --net=none -v \"%cd%:/tmp\" leplusorg/xml xmllint --schema /tmp/foo.xsd /tmp/foo.xml --noout\n```\n\nIn PowerShell:\n\n```pwsh\ndocker run --rm -t --net=none -v \"${PWD}:/tmp\" leplusorg/xml xmllint --schema /tmp/foo.xsd /tmp/foo.xml --noout\n```\n\n## XSLT with Saxon HE\n\n```bash\ndocker run --rm -t --user=\"$(id -u):$(id -g)\" --net=none -v \"$(pwd):/tmp\" leplusorg/xml java -jar /opt/saxon/run.sh -s:/tmp/source.xml -xsl:/tmp/stylesheet.xsl -o:/tmp/output.xml\n```\n\nSee [Saxon's documentation](https://www.saxonica.com/documentation12/index.html#!using-xsl/commandline) for more details regarding syntax and options.\n\n## Help\n\nTo know more command-line options of `xmllint`:\n\n```bash\ndocker run --rm --net=none leplusorg/xml xmllint --help\n```\n\n## NPM Packages\n\nUse the `npx` command to run command-line tools coming from npm\npackages. This ensures isolation between the different packages\n(including potentially conflicting dependencies).\n\n## Software Bill of Materials (SBOM)\n\nTo get the SBOM for the latest image (in SPDX JSON format), use the\nfollowing command:\n\n```bash\ndocker buildx imagetools inspect leplusorg/xml --format '{{ json (index .SBOM \"linux/amd64\").SPDX }}'\n```\n\nReplace `linux/amd64` by the desired platform (`linux/amd64`, `linux/arm64` etc.).\n\n## Provenance\n\nTo get the provenance for the latest image (in JSON format), use the\nfollowing command:\n\n```bash\ndocker buildx imagetools inspect leplusorg/xml --format '{{ json .Provenance }}'\n```\n\n## Sigstore\n\n[Sigstore](https://docs.sigstore.dev) is trying to improve supply\nchain security by allowing you to verify the origin of an\nartifcat. You can verify that the image that you use was actually\nproduced by this repository. This means that if you verify the\nsignature of the Docker image, you can trust the integrity of the\nwhole supply chain from code source, to CI/CD build, to distribution\non Maven Central or whever you got the image from.\n\nYou can use the following command to verify the latest image using its\nsigstore signature attestation:\n\n```bash\ncosign verify leplusorg/xml --certificate-identity-regexp 'https://github\\.com/leplusorg/docker-xml/\\.github/workflows/.+' --certificate-oidc-issuer 'https://token.actions.githubusercontent.com'\n```\n\nThe output should look something like this:\n\n```text\nVerification for index.docker.io/leplusorg/xml:main --\nThe following checks were performed on each of these signatures:\n  - The cosign claims were validated\n  - Existence of the claims in the transparency log was verified offline\n  - The code-signing certificate was verified using trusted certificate authority certificates\n\n[{\"critical\":...\n```\n\nFor instructions on how to install `cosign`, please read this [documentation](https://docs.sigstore.dev/cosign/system_config/installation/).\n\n## Request new tool\n\nPlease use [this link](https://github.com/leplusorg/docker-xml/issues/new?assignees=thomasleplus\u0026labels=enhancement\u0026template=feature_request.md\u0026title=%5BFEAT%5D) (GitHub account required) to request that a new tool be added to the image. I am always interested in adding new capabilities to these images.\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.\n\n## Security\n\nPlease read [SECURITY.md](SECURITY.md) for details on our security policy and how to report security vulnerabilities.\n\n## Code of Conduct\n\nPlease read [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for details on our code of conduct.\n\n## License\n\nThis project is licensed under the terms of the [LICENSE](LICENSE) file.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleplusorg%2Fdocker-xml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleplusorg%2Fdocker-xml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleplusorg%2Fdocker-xml/lists"}