Является ли связь между частью слайда и пользовательской частью XML не явной, а не явной? - PullRequest
0 голосов
/ 06 ноября 2018

Если я хочу связать пользовательскую часть XML с частью слайда , насколько я знаю, это добавить элемент custData внутри части слайда и ссылку идентификатор отношения пользовательской части XML в атрибуте id.

<p:custDataLst>
  <p:custData r:id="rId1" />
</p:custDataLst>

Насколько я понимаю, это явное отношение, поскольку ссылка осуществляется через идентификатор отношения.

Однако, ECMA-376 Часть 1, пятое издание (последняя версия в настоящее время), говорит, что Слайд-часть разрешено иметь только неявное отношение Пользовательская часть XML (раздел 13.3.8).

Это действительно не имеет смысла для меня. На практике я вижу явную связь, в то время как спецификация допускает только неявную.

Это также, как в PowerPoint, если я использую объектную модель VSTO. Если я создам совершенно новый проект VSTO и отредактирую метод запуска так:

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    Application.AfterNewPresentation += pres =>
    {
        var firstSlide = pres.Slides[1];
        var customXmlPart = firstSlide.CustomerData.Add();
        customXmlPart.LoadXML("<test></test>");
    };
}

Затем сохраните презентацию и посмотрите на структуру пакета. PowerPoint сделала то же самое: добавила элемент custData к слайду, ссылаясь на пользовательскую часть XML, используя идентификатор отношения. То есть явное отношение.

Я уверен, что спецификация верна, так чего мне не хватает?

1 Ответ

0 голосов
/ 09 ноября 2018

Хорошо, получается, что Office сознательно не следует спецификации письма. К счастью, Microsoft на самом деле документы, где они расходятся со стандартом. Эту документацию можно найти на веб-сайте Open Specification по адресу MSDN . Окунувшись в эту документацию, я обнаружил страницу Поддержка стандартов Word, Excel и PowerPoint , на которой есть довольно много документов в формате PDF, в которых описывается, как стандарт реализован в Word, PowerPoint и Excel. Окунемся дальше в [MS-OE376]: информация о внедрении Office для поддержки стандартов ECMA-376 , раздел 2.1.23.e:

Стандарт гласит, что части Presentation разрешено иметь неявную связь с частью Custom Storage Data Storage.

Office также допускает явную связь между частью представления и частью пользовательского хранилища данных XML.

В документе PDF ничего не говорится об этом для слайдов, но теперь я больше не уверен, неправильно ли я интерпретировал стандарт или PowerPoint просто не следовал стандарту. Совершенно очевидно, что PowerPoint во многих случаях не соответствует стандарту, поэтому у меня есть конкретный случай с явной взаимосвязью между Slide Part и Custom XML Storage Data Part Вероятно, это просто еще один случай, когда PowerPoint не соответствует стандарту.

...