Настраиваемые xml данные в word что это
Настраиваемая разметка XML удаляется при открытии документа в Word 2010
Проблема
Рассмотрим следующую ситуацию. Вы пытаетесь открыть в Microsoft Office Word 2010 документ одного из следующих форматов:
документ Word (DOCX);
документ Word с включенной поддержкой макросов (DOCM);
шаблон Word с включенной поддержкой макросов (DOTM);
XML-документ Word (XML);
XML-документ Word 2003 (XML);
После открытия документа вы получаете уведомление, что вся настраиваемая разметка XML в документе удалена.
Дополнительная информация
Версии Word, выпущенные Майкрософт после 10 января 2010 г., больше не могут считывать настраиваемую XML-разметку в файлах DOCX, DOCM, DOTX, DOTM и XML. Версия Word 2010 может открывать такие файлы, но при этом настраиваемая XML-разметка удаляется.
Настраиваемая XML-разметка в документе Word отображается в виде розовых (по умолчанию) тегов, в которые заключен текст в документе:
Настраиваемая XML-разметка удаляется согласно решению суда США, вынесенному 22 декабря 2009 г. Клиенты, приобретшие Word 2010 или получившие его по лицензии, обнаружат, что в это программное обеспечение не включена поддержка настраиваемой разметки XML.
Действие данного исправления не распространяется на следующие функции Word:
Не затрагиваются элементы управления содержимым. Элементы управления содержимым — распространенное средство структуризации содержимого документа и его сопоставления с настраиваемыми элементами XML.
Не затрагиваются открытые стандарты XML (все версии ECMA и ISO).
Не затрагивается настраиваемая XML-разметка в документах Word 97-2003 (DOC).
Не затрагивается XML ленты и расширения ленты.
Не затрагиваются настраиваемые XML-части. Дополнительные сведения о настраиваемых XML-частях см. на следующем веб-сайте MSDN:
Не затрагивается объектная модель Word. При этом некоторые ее методы, работающие с настраиваемой XML-разметкой, могут давать непредвиденные результаты.
Метод TransformDocument продолжит работать, но вся настраиваемая XML-разметка в результатах преобразования будет удалена.
Метод InsertXML продолжит работать, но вся настраиваемая XML-разметка будет удалена перед вставкой содержимого.
Примечание. Если вы разработали решение, использующее настраиваемую XML-разметку, учтите, что она больше не поддерживается. Многие сценарии, реализуемые с помощью настраиваемой XML-разметки, можно реализовать с помощью альтернативных технологий в Word 2007 и Word 2010, например элементов управления содержимым, полей форм и закладок. Так, перечисленные далее статьи описывают, как элементы управления содержимым (наряду с такими технологиями, как закладки) позволяют разработчикам создавать структурированные документы и могут использоваться для задания определенных значений структурированному содержимому. Эти произвольные значения могут задавать семантический смысл элементам содержимого.
Дополнительные сведения об элементах управления содержимым см. на следующем веб-сайте Майкрософт:
Ссылки
Описание обновления Word 2003 и Word 2007, выпущенного в январе 2010 г.
При открытии документа в Word выводится следующее сообщение об ошибке: «Данный файл содержит настраиваемые элементы XML, которые больше не поддерживаются в Word».
XML для начинающих
Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.
В этой статье
Пометки, разметка и теги
Чтобы понять XML, полезно понимать идею пометки данных. Люди создавали документы на протяжении многих лет и на протяжении всего времени они их помечали. Например, преподаватели могут постоянно пометить документы учащихся. Учащиеся могут перемещать абзацы, уточнять предложения, исправлять опечатки и так далее. Пометка документа определяет структуру, смысл и внешний вид сведений в документе. Если вы когда-либо использовали функцию «Отслеживание изменений» в Microsoft Office Word, то использовали компьютеризированную форму пометки.
В мире информационных технологий термин «пометка» превратился в термин «разметка». При разметке используются коды, называемые тегами (или иногда токенами), для определения структуры, визуального оформления и — в случае XML — смысла данных.
Текст этой статьи в формате HTML является хорошим примером применения компьютерной разметки. Если в Microsoft Internet Explorer щелкнуть эту страницу правой кнопкой мыши и выбрать команду Просмотр HTML-кода, вы увидите читаемый текст и теги HTML, например
. В HTML- и XML-документах теги легко распознать, поскольку они заключены в угловые скобки. В исходном тексте этой статьи теги HTML выполняют множество функций, например определяют начало и конец каждого абзаца (
) и местоположение рисунков.
Отличительные черты XML
Документы в форматах HTML и XML содержат данные, заключенные в теги, но на этом сходство между двумя языками заканчивается. В формате HTML теги определяют оформление данных — расположение заголовков, начало абзаца и т. д. В формате XML теги определяют структуру и смысл данных — то, чем они являются.
При описании структуры и смысла данных становится возможным их повторное использование несколькими способами. Например, если у вас есть блок данных о продажах, каждый элемент в котором четко определен, то можно загрузить в отчет о продажах только необходимые элементы, а другие данные передать в бухгалтерскую базу данных. Иначе говоря, можно использовать одну систему для генерации данных и пометки их тегами в формате XML, а затем обрабатывать эти данные в любых других системах вне зависимости от клиентской платформы или операционной системы. Благодаря такой совместимости XML является основой одной из самых популярных технологий обмена данными.
Учитывайте при работе следующее:
HTML нельзя использовать вместо XML. Однако XML-данные можно заключать в HTML-теги и отображать на веб-страницах.
Возможности HTML ограничены предопределенным набором тегов, общим для всех пользователей.
Правила XML разрешают создавать любые теги, требуемые для описания данных и их структуры. Допустим, что вам необходимо хранить и совместно использовать сведения о домашних животных. Для этого можно создать следующий XML-код:
Как видно, по тегам XML понятно, какие данные вы просматриваете. Например, ясно, что это данные о коте, и можно легко определить его имя, возраст и т. д. Благодаря возможности создавать теги, определяющие почти любую структуру данных, язык XML является расширяемым.
Но не путайте теги в данном примере с тегами в HTML-файле. Например, если приведенный выше текст в формате XML вставить в HTML-файл и открыть его в браузере, то результаты будут выглядеть следующим образом:
Izzy Siamese 6 yes no Izz138bod Colin Wilcox
Веб-браузер проигнорирует теги XML и отобразит только данные.
Правильно сформированные данные
Вероятно, вы слышали, как кто-то из ИТ-специалистов говорил о «правильно сформированном» XML-файле. Правильно сформированный XML-файл должен соответствовать очень строгим правилам. Если он не соответствует этим правилам, XML не работает. Например, в предыдущем примере каждый открывающий тег имеет соответствующий закрывающий тег, поэтому в данном примере соблюдено одно из правил правильно сформированного XML-файла. Если же удалить из файла какой-либо тег и попытаться открыть его в одной из программ Office, то появится сообщение об ошибке и использовать такой файл будет невозможно.
Правила создания правильно сформированного XML-файла знать необязательно (хотя понять их нетрудно), но следует помнить, что использовать в других приложениях и системах можно лишь правильно сформированные XML-данные. Если XML-файл не открывается, то он, вероятно, неправильно сформирован.
XML не зависит от платформы, и это значит, что любая программа, созданная для использования XML, может читать и обрабатывать XML-данные независимо от оборудования или операционной системы. Например, при применении правильных тегов XML можно использовать программу на настольном компьютере для открытия и обработки данных, полученных с мейнфрейма. И, независимо от того, кто создал XML-данные, с ними данными можно работать в различных приложениях Office. Благодаря своей совместимости XML стал одной из самых популярных технологий обмена данными между базами данных и пользовательскими компьютерами.
В дополнение к правильно сформированным данным с тегами XML-системы обычно используют два дополнительных компонента: схемы и преобразования. В следующих разделах описывается, как они работают.
Схемы
Не пугайтесь термина «схема». Схема — это просто XML-файл, содержащий правила для содержимого XML-файла данных. Файлы схем обычно имеют расширение XSD, тогда как для файлов данных XML используется расширение XML.
Схемы позволяют программам проверять данные. Они формируют структуру данных и обеспечивают их понятность создателю и другим людям. Например, если пользователь вводит недопустимые данные, например текст в поле даты, программа может предложить ему исправить их. Если данные в XML-файле соответствуют правилам в схеме, для их чтения, интерпретации и обработки можно использовать любую программу, поддерживающую XML. Например, как показано на приведенном ниже рисунке, Excel может проверять данные на соответствие схеме CAT.
Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:
Строковые элементы в приведенном примере схемы называются объявлениями. Если бы требовались дополнительные сведения о животном, например его цвет или особые признаки, то специалисты отдела ИТ добавили бы к схеме соответствующие объявления. Систему XML можно изменять по мере развития потребностей бизнеса.
Объявления являются мощным средством управления структурой данных. Например, объявление означает, что теги, такие как и
, должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.
Если данные в XML-файле соответствуют правилам схемы, то такие данные называют допустимыми. Процесс контроля соответствия XML-файла данных правилам схемы называют (достаточно логично) проверкой. Большим преимуществом использования схем является возможность предотвратить с их помощью повреждение данных. Схемы также облегчают поиск поврежденных данных, поскольку при возникновении такой проблемы обработка XML-файла останавливается.
Преобразования
Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).
Вы (или ваш ИТ-отдел) можете также использовать преобразования для обмена данными между серверными системами, например между базами данных. Предположим, что в базе данных А данные о продажах хранятся в таблице, удобной для отдела продаж. В базе данных Б хранятся данные о доходах и расходах в таблице, специально разработанной для бухгалтерии. База данных Б может использовать преобразование, чтобы принять данные от базы данных A и поместить их в соответствующие таблицы.
Сочетание файла данных, схемы и преобразования образует базовую систему XML. На следующем рисунке показана работа подобных систем. Файл данных проверяется на соответствие правилам схемы, а затем передается любым пригодным способом для преобразования. В этом случае преобразование размещает данные в таблице на веб-странице.
В следующем примере кода показан один из способов написания преобразования. Она загружает данные в таблицу на веб-странице. В этом примере суть не в том, чтобы показать, как написать преобразование, а в том, чтобы показать одну форму, которую может принять преобразование.
В этом примере показано, как может выглядеть текст одного из типов преобразования, но помните, что вы можете ограничиться четким описанием того, что вам нужно от данных, и это описание может быть сделано на вашем родном языке. Например, вы можете пойти в отдел ИТ и сказать, что необходимо напечатать данные о продажах для конкретных регионов за последние два года, и что эти сведения должны выглядеть так-то и так-то. После этого специалисты отдела могут написать (или изменить) преобразование, чтобы выполнить вашу просьбу.
Корпорация Майкрософт и растущее число других компаний создают преобразования для различных задач, что делает использование XML еще более удобным. В будущем, скорее всего, можно будет скачать преобразование, отвечающее вашим потребностям без дополнительной настройки или с небольшими изменениями. Это означает, что со временем использование XML будет требовать все меньше и меньше затрат.
XML в системе Microsoft Office
Профессиональные выпуски Office обеспечивают всестороннюю поддержку XML. Начиная с Microsoft Office 2007, в Microsoft Office используются форматы файлов на основе XML, например DOCX, XLSX и PPTX. Поскольку XML-данные хранятся в текстовом формате вместо запатентованного двоичного формата, ваши клиенты могут определять собственные схемы и использовать ваши данные разными способами без лицензионных отчислений. Дополнительные сведения о новых форматах см. в сведениях о форматах Open XML и расширениях имен файлов. К другим преимуществам относятся:
Меньший размер файлов. Новый формат использует ZIP и другие технологии сжатия, поэтому размер файла на 75 процентов меньше, чем в двоичных форматах, применяемых в более ранних версиях Office.
Более простое восстановление данных и большая безопасность. Формат XML может быть легко прочитан пользователем, поэтому если файл поврежден, его можно открыть в Блокноте или другой программе для просмотра текста и восстановить хотя бы часть данных. Кроме того, новые файлы более безопасны, потому что они не могут содержать код Visual Basic для приложений (VBA). Если новый формат используется для создания шаблонов, то элементы ActiveX и макросы VBA находятся в отдельном, более безопасном разделе файла. Кроме того, можно удалять личные данные из документов с помощью таких средств, как инспектор документов. Дополнительные сведения об использовании инспектора документов см. в статье Удаление скрытых и персональных данных при проверке документов.
Пока все хорошо, но что делать, если у вас есть данные XML без схемы? У Office программ, которые поддерживают XML, есть свои подходы к работе с данными. Например, Excel выдаст схему, если вы откроете XML-файл, который еще не имеет такой схемы. Excel затем вы можете загрузить эти данные в XML-таблицу. Для сортировки, фильтрации или добавления вычислений в данные можно использовать XML-списки и таблицы.
Включение средств XML в Office
По умолчанию вкладка «Разработчик» не отображается. Ее необходимо добавить на ленту для использования команд XML в Office.
В Office 2016, Office 2013 или Office 2010: Отображение вкладки «Разработчик».
Как установить настраиваемое свойство в текстовом документе (пакет SDK Open XML)
В этом разделе показан порядок использования классов пакета Пакет Open XML SDK 2.5 для Office для программной настройки настраиваемого свойства в текстовом документе. Для иллюстрации этой задачи в разделе приведен пример метода SetCustomProperty.
Чтобы использовать пример кода из этого раздела, необходимо установить Open XML SDK 2.5. Требуется добавить в проект явные ссылки на следующие сборки:
DocumentFormat.OpenXml (устанавливается вместе с пакетом Open XML SDK).
Для компиляции кода, представленного в этом разделе, необходимо также использовать следующие директивы using или инструкции Imports.
Пример кода также включает в себя перечисление, которое определяет возможные типы настраиваемых свойств. Метод SetCustomProperty во время запуска требует предоставления одного из следующих значений:
Формат хранения настраиваемых свойств
Важно понимать, как настраиваемые свойства хранятся в текстовом документе. Для обнаружения способа хранения можно использовать средство повышения производительности для системы Microsoft Office, показаное на рисунке 1. Это средство позволяет открыть документ и просматривать его части и иерархию частей. На рисунке 1 показан тестовый документ после запуска кода в разделе этой статьи Вызов метода SetCustomProperty. Инструмент отображает как правые панели XML-код для части, так и отраженный C# код, которые можно использовать для создания содержимого части.
Рис. 1. Средство повышения производительности пакета SDK Open XML для Microsoft Office
Соответствующий XML-код также извлечен и показан ниже для удобства.
Если посмотреть на XML-содержимое, можно заметить следующее:
Каждое свойство в XML-содержимом состоит из XML-элемента, включающего имя и значение свойства.
Для каждого свойства в XML-содержимом имеется атрибут fmtid, который всегда имеет одно и то же строковое значение:
Каждое свойство в XML-содержимом имеет атрибут pid, который должен содержать целое число, начинающееся с 2 для первого свойства и увеличивающееся для каждого последующего свойства.
Для каждого свойства указан его тип (на рисунке видно, что названия элементов vt:lpwstr и vt:filetime определяют типы свойств).
Пример метода, предоставляемый здесь, включает код, который необходим для создания или изменения настраиваемого свойства документа в Microsoft Word 2010 или Microsoft Word 2013. Можно найти полный пример кода для метода в разделе Пример кода.
Метод SetCustomProperty
Метод SetCustomProperty используется для настройки настраиваемого свойства текстового документа. Метод SetCustomProperty принимает четыре параметра:
Имя изменяемого документа (строковое значение).
Имя изменяемого (или добавляемого) свойства (строковое значение).
Значение свойства (объект).
Тип свойства (одно из значений в перечислении PropertyTypes).
Вызов метода SetCustomProperty
Метод SetCustomProperty позволяет настраивать настраиваемое свойство и возвращает текущее значение свойства, если оно существует. Чтобы вызвать пример метода, передайте имя файла, имя свойства, значение свойства и параметры типа свойства. Следующий код показывает пример использования:
После выполнения этого кода используйте следующую процедуру для просмотра настраиваемых свойств в приложении Word.
Откройте файл SetCustomProperty.docx в Word.
На вкладке Файл выберите команду Сведения.
Щелкните Свойства.
Выберите команду Дополнительные свойства.
Настраиваемые свойства будут отображены в появившемся диалоговом окне, как показано на рис. 2.
Рис. 2. Настраиваемые свойства в диалоговом окне «Дополнительные свойства»
Как работает код
Метод SetCustomProperty запускается путем настройки некоторых внутренних переменных. Затем он проверяет сведения о свойстве и создает новое свойство CustomDocumentProperty на основе параметров, указанных вами. Код также поддерживает переменную с именем propSet, которая указывает, смог ли он успешно создать новый объект свойства. Этот код проверяет тип значения свойства, а затем преобразует входные данные в правильный тип, устанавливая соответствующее свойство объекта CustomDocumentProperty.
[!Примечание] Тип CustomDocumentProperty весьма похож на тип Variant в VBA. В нем имеются отдельные заполнители, используемые в качестве свойств для различных типов данных, которые он может содержать.
Если на данном этапе код не создал исключение, можно предположить, что свойство правильное, и код настроит свойства FormatId иName нового настраиваемого свойства.
Работа с документом
Учитывая объект CustomDocumentProperty, код далее взаимодействует с документом, который вы указали в параметрах для процедуры SetCustomProperty. Работа кода начинается с открытия документа в режиме чтения/записи с помощью метода Open класса WordprocessingDocument. Код пытается получить ссылку на часть свойств пользовательского файла с помощью свойства документа CustomFilePropertiesPart.
Если коду не удается найти часть, содержащую настраиваемые свойства, он создает новую часть и добавляет в нее новый набор свойств.
Если свойство уже существует, код запрашивает его текущее значение, а затем удаляет это свойство. Зачем удалять свойство? Если новый тип свойства совпадает с типом существующего свойства, код теоретически может задать свойству новое значение. С другой стороны, если новый тип не совпадает, код должен создать новый элемент, удалив старый (тип элемента определяется его именем см. рис. 1). Проще всегда удалять и затем создавать элемент. Код использует простой запрос LINQ, чтобы найти первое совпадение для имени свойства.
Теперь можно быть уверенным, что часть для настраиваемого свойства существует; что свойство с именем, совпадающим с новым свойством, не существует; и что могут уже существовать и другие настраиваемые свойства. Код выполняет следующие действия:
Добавляет новое свойство как дочерний объект в коллекцию свойств.
Обходит все существующие свойства и задает атрибуту pid** увеличивающиеся значения, начиная с 2.
Наконец, код возвращает исходное сохраненное ранее значение свойства.
Пример кода
Далее приведен полный пример кода SetCustomProperty на языках C# и Visual Basic.
XML-схемы и данные в настройках уровня документа
Важно! сведения, приведенные в этом разделе, в отношении Microsoft Word представлены исключительно для преимуществ и использования частных лиц и организаций, которые находятся за пределами США и его территорий или для разработки программ, работающих на Microsoft Word продуктах, которые были лицензированы корпорацией майкрософт до января 2010, когда корпорация майкрософт удалила реализацию определенных функций, связанных с пользовательским XML-кодом, из Microsoft Word. эти сведения, касающиеся Microsoft Word, не могут быть прочитаны или использованы людьми или организациями в США или на ее территориях, которые используют или разрабатывают программы, работающие под управлением, Microsoft Word продуктах, лицензированных корпорацией майкрософт после 10 января 2010 г. Эти продукты не будут работать так же, как продукты, лицензированные до этой даты или приобретенные и лицензированные для использования за пределами США.
Применимость. Информация в этой статье относится к проектам уровня документа для Excel и Word.- Дополнительные сведения см. в разделе доступность функций по типам приложений Office и проектов.
Microsoft Office Excel и Microsoft Office Word предоставляют возможность сопоставлять схемы с документами. Эта функция может упростить импорт и экспорт XML-данных в документ и из него.
Visual Studio предоставляет сопоставленные элементы схемы в настройках уровня документа в виде элементов управления в модели программирования. для Excel Visual Studio добавляет поддержку привязки элементов управления к данным в базах данных, веб-службах и объектах. для Word и Excel Visual Studio добавляет поддержку панелей действий, которую можно использовать с документом, сопоставленным с схемами, чтобы создать усовершенствованное взаимодействие с конечным пользователем для ваших решений. Дополнительные сведения см. в разделе Общие сведения о панели действий.
в решениях Excel нельзя использовать составные XML-схемы.
объекты, созданные при присоединении схем к Excel книгам
при присоединении схемы к книге Visual Studio автоматически создает несколько объектов и добавляет их в проект. эти объекты не следует удалять с помощью средств Visual Studio, так как они управляются Excel. чтобы удалить их, удалите сопоставленные элементы с листа или отключите схему с помощью средств Excel.
Существует два основных объекта:
Схема XML (XSD-файл). для каждой схемы в книге Visual Studio добавляет в проект схему. Он отображается как элемент проекта с расширением XSD в Обозреватель решений.
Типизированный класс DataSet. Этот класс создается на основе схемы. Этот класс набора данных отображается в представление классов.
объекты, созданные при сопоставлении элементов схемы с Excel листами
при сопоставлении элемента схемы из области задач источник XML с листом Visual Studio автоматически создает несколько объектов и добавляет их в проект:
Элементы управления. Для каждого сопоставленного объекта в книге в XmlMappedRange модели программирования создается элемент управления (для неповторяющихся элементов схемы) или ListObject элемент управления (для повторяющихся элементов схемы). ListObjectЭлемент управления может быть удален только путем удаления сопоставлений и сопоставленных объектов из книги. Дополнительные сведения об элементах управления см. в разделе Общие сведения о ведущих элементах и элементах управления ведущего приложения.
Объект BindingSource не создается для ListObject объектов. Необходимо вручную привязать ListObject к источнику данных, задав DataSource DataMember Свойства и в окне » Свойства «.
Office сопоставленных схем и окна «Visual Studio источники данных»
функции сопоставленной схемы Office и окна «Visual Studio источники данных » могут помочь в отображении данных на листе Excel для создания отчетов или редактирования. в обоих случаях элементы данных можно перетаскивать на лист Excel. Оба метода создают элементы управления, которые являются данными, привязанными через, BindingSource к источнику данных, например к DataSet или веб-службе.
В следующей таблице показаны некоторые различия между двумя методами.
Поведение при присоединении схем к документам Word
объекты данных не создаются при присоединении схемы к документу Word, который используется в проекте Office уровня документа. Однако при сопоставлении элемента схемы с документом создаются элементы управления. Тип элемента управления зависит от типа сопоставляемого элемента; повторяющиеся элементы создают XMLNodes элементы управления и неповторяющиеся элементы создают XMLNode элементы управления. Дополнительные сведения см. в разделе элементы управления XMLNodes и XmlNode.
Развертывание решений, включающих XML-схемы
Необходимо создать установщик для развертывания решения, использующего схему XML, сопоставленную с документом. Установщик должен зарегистрировать схему в библиотеке схем на компьютере пользователя. Если схема не зарегистрирована, решение по-прежнему будет работать, поскольку Word создает временную схему на основе элементов, которые находятся в документе при его открытии пользователем. Однако пользователь не сможет выполнить проверку или сохранить схему, которая использовалась для создания проекта. Дополнительные сведения об установщиках см. в разделе развертывание приложений, служб и компонентов.
Можно также добавить код в проект, чтобы проверить, находится ли схема в библиотеке и зарегистрирована. Если это не так, можно предупредить пользователя.