Если я хочу связать пользовательскую часть 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, используя идентификатор отношения. То есть явное отношение.
Я уверен, что спецификация верна, так чего мне не хватает?