Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Commas in DocumentFormat.OpenXml.Wordprocessing.Name.Val property cause invalid value error #1656

Open
mikeebowen opened this issue Jan 31, 2024 · 0 comments

Comments

@mikeebowen
Copy link
Collaborator

Describe the bug

According to the "data\SchematronFiles\word.xml" lines 3618 - 3628 the w:val property for the w:name element should be invalid if it contains a comma only for w:name elements that are children of w:category or w:fieldMapData, but the CollectSchematronItems method from "tools\SemanticConstraintRegGen\SchematronDataProvider.cs" line 66 splits the Context on / leaving only the property name instead of the full path. So, in schematron.json the restriction becomes:

{
    "Context": "w:name",
    "Test": "matches(@w:val, \u0022[^,]*\u0022)",
    "App": "Word"
},

restricting the w:name property from containing commas for all elements in Word.

This may be a "won't fix", because it looks like it will either be a major rewrite of how that validation works that could involve breaking changes or creating separate classes for the different w:name elements, like FieldMapDataName and CategoryName, but this would definitely be a breaking change as they all currently use DocumentFormat.OpenXml.Wordprocessing.Name for this class. I'm adding the issue in the hope I'm wrong.

To Reproduce

Add commas to the w:val property of a w:name element that is not the child of w:fieldMapData or w:category (e.g. w:docPartPr or w:style) then create an instance of the OpenXmlValidator and validate the file.

Observed behavior

The validator returns an invalid value error for the w:val property.

Expected behavior

Expected the validation to pass without error.

Desktop (please complete the following information):

  • OS: Windows 11
  • Office version 16.0.16626.20086
  • .NET Target: .Net 8
  • DocumentFormat.OpenXml Version: 3.0.1

Additional context

This was discovered from a user issue with the ooxml-validator-vscode: mikeebowen/ooxml-validator-vscode#25.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants