Наш текущий проект работы включает открытие файла Microsoft PowerPoint (формат .pptx), изменение текста и значений диаграммы, а затем представление отредактированной версии до конца пользователь.Проверка документа Open XML SDK 2.5: атрибут «smtClean» не объявлен
Это пока работает довольно хорошо, но я озадачен тем, что происходит, когда я пытаюсь проверить документ позже. Используя класс DocumentFormat.OpenXml.Validation.OpenXmlValidator, я запускаю функцию Validate с передачей PresentationDocument в качестве единственного параметра.
Dim document As PresentationDocument = PresentationDocument.Open(templateFilePath, True)
Dim validator As OpenXmlValidator = New OpenXmlValidator()
Dim errors = validator.Validate(document)
For Each errInfo As ValidationErrorInfo In errors
Debug.Print("Error: """ & errInfo .Description & """")
Debug.Print("XPath: " & errInfo .Path.XPath)
Next
Validate() возвращает массив, заполненный экземплярами ValidationErrorInfo. Почти все они дают то же описание ошибки при отладке:
The 'smtClean' attribute is not declared.
XPath для каждой ошибки выглядит следующим образом (цифры варьируются, как представляется, одна ошибка на части текста):
/p:sldLayout[1]/p:cSld[1]/p:spTree[1]/p:sp[4]/p:txBody[1]/a:p[1]/a:fld[1]/a:rPr[1]
Каждый TableCell имеет абзац, с дочерним элементом Run, и этот Run имеет дочерние элементы RunProperties и Text. Я изменяю текст в своих сценариях, но я ничего не трогаю.
Поиск «smtClean» дал мне запись MSDN для RunProperties, которая показывает «smtClean» как одно из возможных значений, которые необходимо установить, но если я создам новый экземпляр DocumentFormat.OpenXml.Presentation.Drawing.RunProperties, smtClean 'недоступен.
Оглядываясь вокруг, я нашел темы, в которых люди упомянули объединенные документы, чтобы быть одной из возможных причин, но эти ошибки происходят даже в немодифицированном представлении, в котором есть только один слайд и таблица. Используя инструмент производительности Open XML SDK 2.5 для проверки базового документа, я получаю тот же результат.
Ошибки также возникают независимо от того, в каком формате я прошу проверку валидатора проверить - как версия формата PowerPoint 2007, 2010, так и версия 2013 года возвращают такое же количество ошибок.
И наконец: сам файл отлично работает в PowerPoint даже после его модификации. Мне любопытно, почему валидатор возвращает так много ошибок.
Заранее благодарим за любую помощь.