{"id":18857752,"url":"https://github.com/mikeebowen/ooxml-validator","last_synced_at":"2025-04-14T11:31:59.255Z","repository":{"id":41804364,"uuid":"344961048","full_name":"mikeebowen/OOXML-Validator","owner":"mikeebowen","description":"A .NET CLI Package for validating Office Open XML files.","archived":false,"fork":false,"pushed_at":"2024-12-12T16:49:05.000Z","size":69,"stargazers_count":21,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T00:51:13.249Z","etag":null,"topics":["ooxml","validate","validation","validator"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=mikeebowen.ooxml-validator-vscode","language":"C#","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/mikeebowen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-03-05T23:35:49.000Z","updated_at":"2025-01-21T15:18:11.000Z","dependencies_parsed_at":"2024-06-28T17:35:06.798Z","dependency_job_id":null,"html_url":"https://github.com/mikeebowen/OOXML-Validator","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeebowen%2FOOXML-Validator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeebowen%2FOOXML-Validator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeebowen%2FOOXML-Validator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikeebowen%2FOOXML-Validator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikeebowen","download_url":"https://codeload.github.com/mikeebowen/OOXML-Validator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248871905,"owners_count":21175315,"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":["ooxml","validate","validation","validator"],"created_at":"2024-11-08T04:07:57.768Z","updated_at":"2025-04-14T11:31:59.229Z","avatar_url":"https://github.com/mikeebowen.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Test and Release](https://github.com/mikeebowen/OOXML-Validator/actions/workflows/dotnet.yml/badge.svg)](https://github.com/mikeebowen/OOXML-Validator/actions/workflows/dotnet.yml)\n\n# OOXML-Validator\n\n## What is it?\n\nThe OOXML Validator is a .NET CLI package which validates Open Office XML files (.docx, .docm, .dotm, .dotx, .pptx, .pptm, .potm, .potx, .ppam, .ppsm, .ppsx, .xlsx, .xlsm, .xltm, .xltx, or .xlam) and returns the validation errors as JSON or XML.\n\n## How is it used?\n\nThe OOXML Validator CLI accepts 1 required and 4 optional parameters. The first argument must be the file or directory path, the order of the other 4 arguments doesn't matter.\n\nArgument Order | Type | Value | Required/Optional\n---|---|---|---\nFirst (Required) | string | The absolute path to the file or folder to validate | Required\nAny | string | The version of Office to validate against* | Optional\nAny | string | If the value is `--xml` or `-x`, cli will return xml | Optional\nAny | string | If the value is `--recursive` or `-r` validates files recursively through all folders\\** | Optional\nAny | string | If the value is `--all` or `-a` files without any errors are included in the list. | Optional\n\n\\* Must be one of these (case sensitive): `Office2007`, `Office2010`, `Office2013`, `Office2016`, `Office2019`, `Office2021`, `Microsoft365`. Defaults to `Microsoft365`\n\n\\** Only valid if the path passed is a directory and not a file, otherwise it is ignored\n\n## XML vs JSON\n\nXML and JSON both return a list of validation errors. In addition to the validation error list, the XML data has 2 attributes: `FilePath` and `IsStrict`. FilePath is the path to the file that was validated and IsStrict is true if the document is saved in strict mode and false otherwise.\n\n## Validating Directories\n\nIf the first argument passed is a directory path, then all Office Open XML files in the directory are validated. Non-OOXML files are ignored. If the `-r` or `--recursive` flags are passed then all directories are validated recursively.\n\n\n## Development\nYou can run some development scripts with\n\n```bash\n./dev.sh help\n# ./dev.sh \u003ccommand\u003e [build_env]\n# \n#   help                 show this help message\n#   docker               docker container for development\n#   build \u003cbuild_env\u003e    build\n#   envs                 show build envs\n#   run \u003cbuild_env\u003e      run the command line\n# \n```\n\nTo build run the following, replacing `linux-x64` with your environment\n\n```bash\n./dev.sh build linux-x64\n```\n\nRun the executable with\n\n```bash\n./dev.sh run linux-x64 ./test.docx\n```\n\nIf you don't want to install `dotnet` just run the following to start a container shell\n\n```bash\n./dev.sh docker\n# root@8b0f1aad055c:/code# [RUN YOUR COMMANDS HERE]\n```\n\n### OSX with Apple Silicon (M1, M2, M3, etc chip)\n\n1. use the docker method from above to start the project\n2. from the docker CLI run the build for linux-arm64:\n\n`root@8b0f1aad055c:/code# ./dev.sh build linux-arm64`\n\nUse the CLI by calling:\n\n`root@8b0f1aad055c:/code# ./dev.sh run linux-arm64 [other-options]`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikeebowen%2Fooxml-validator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikeebowen%2Fooxml-validator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikeebowen%2Fooxml-validator/lists"}