Skip to content

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

Open
@mikeebowen

Description

@mikeebowen

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions