О чем конкретно заботится Open XML SDK v2, что вам придется делать вручную при ручном кодировании с библиотекой XML? - PullRequest
2 голосов
/ 25 июля 2010

Это тесно связано с другим вопросом, который я задал: Есть ли функциональность, которая НЕ представлена ​​в Open XML SDK v2?

В настоящее время я работаю с файлами Open XML вручную. Недавно я взглянул на SDK и с удивлением обнаружил, что он выглядел довольно низко, на самом деле очень похож на классы помощников, которые я создал сам. У меня вопрос, что именно SDK v2 позаботится о том, что вам придется делать вручную при ручном кодировании с библиотекой XML?

Например, будет ли он автоматически исправлять файлы _rels при удалении слайда PowerPoint?

Ответы [ 2 ]

3 голосов
/ 27 июля 2010

В дополнение к ссылкам Otaku, this показывает пример (в нижней части) навигации по документу OpenXML с использованием пространства имен IO.Packaging и SDK.

Точно так же, как Microsoft заявляет на странице загрузки для SDK :

Open XML SDK 2.0 для Microsoft Офис построен на вершине System.IO.Packaging API и обеспечивает строго типизированные классы деталей для манипулировать документами Open XML. SDK также использует .NET Framework Интегрированный в язык запрос (LINQ) технология для предоставления строго типизированных доступ к объекту XML внутри частей открытого XML документы.

Open XML SDK 2.0 упрощает задача манипулирования пакетами Open XML и базовая схема Open XML элементы в пакете. Открыто Интерфейс прикладного программирования XML (API) инкапсулирует много общих задач что разработчики выполняют на Open XML пакеты, так что вы можете выполнять сложные операции с несколькими строками код.

Я работал в основном только с SDK, но, например, приятно иметь возможность извлекать таблицу из документа Word, просто используя:

Table table = wordprocessingDocument.MainDocumentPart.Document.Body.Elements<Table>().First();

(я имею в виду, если это первая таблица)

Я бы сказал, что SDK делает именно то, к чему стремится, предоставляя своего рода интуитивно понятный объектно-ориентированный способ работы с документами.

Что касается автоматического исправления отношений - нет, этого не происходит. И, оглядываясь назад на то, как вы на самом деле формулируете вопрос, я думаю, я мог бы даже сказать, что (и я довольно новичок в Open XML, так что это не Евангелие по сути) SDK2.0 не обязательно предлагает какие-то дополнительные функциональность , поскольку она предлагает более удобный способ достижения той же функциональности. Например, вам все равно нужно знать об этих отношениях при удалении элемента, но с ними гораздо проще иметь дело.

Кроме того, в SDK были приложены некоторые усилия, чтобы добавить еще больше абстракции - см., Например, ExtremeML (только для библиотеки Excel. Я никогда не использовал ее, но думаю, что она в такие вещи, как исправление отношений).

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

2 голосов
/ 25 июля 2010

В качестве отправной точки прочитайте this из блога Brian Jones & Zeyad Rajabi.

Я не знаю о параллельном сравнении, но следующие статьи / видео действительно обсуждают два:

Наконец, это что нового для 2.0 - можно предположить, что ни 1.0, ни ручное кодирование не имеют этих преимуществ.

...