УДАЛЕНИЕ ПОВРЕЖДЕННЫХ СТИЛЕЙ ИЗ ДОКУМЕНТОВ РАСШИРЯЕМОГО ЯЗЫКА РАЗМЕТКИ
REMOVAL OF CORRUPTED STYLES FROM EXTENSIBLE MARKUP LANGUAGE DOCUMENTS

УРОВЕНЬ ТЕХНИКИ
Расширяемый язык разметки (XML) является набором стандартизованных правил для кодирования электронных документов в машиночитаемом формате для упрощения, обобщения и использования в сети Интернет. Несмотря на то, что данный формат текстовых данных сконцентрирован на документах, однако он широко используется для представления произвольных структур данных, например в web-услугах. Существуют разные версии и вариации XML. Одним примером использования типа XML является стандартизованный формат файла XML Открытого Офиса (OOXML), который разработан Microsoft Corp., Редмонд, штат Вашингтон. OOXML включает в себя набор форматов файлов, которые могут использоваться для представления документов электронного офиса. Форматы определяют набор словарей разметки XML для документов обработки текстов, электронных таблиц и презентаций, как, впрочем, и специальные словари разметки XML для контента, такого как математические формулы, графики, библиографии и сопоставимого. Стандартизованный формат OOXML предназначен для обеспечения расширяемости и функциональной совместимости посредством предоставления возможности реализаций множеством авторов и на множестве платформ.
Часть определения стиля документа, в общем именуемая «таблицей стилей», является формой разделения представления и контента в программах обработки документов, которая хранит и применяет форматирование к тексту. Отдельные стили могут быть включены в шаблоны документов в качестве стилей по умолчанию или созданных пользователями с широким многообразием команд, которые диктуют, каким образом отформатирована выбранная часть данных. Таблицы стилей способствуют сохранению связности в публикациях таким образом, что общие элементы, такие как основная часть, заголовки, сноски, форматирование нумерации, цвет шрифта, цвет фона и т.п., всегда выглядят одинаково. Таблицы стилей также экономят время, позволяя автору применять формат к выбранным элементам за одну операцию вместо применения операции к каждому элементу.
При использовании в документах определений пользовательских стилей существует потенциальная угроза повреждения содержимого файла. В некоторых сценариях, когда содержимое копируется из нескольких документов с пользовательскими стилями, это может привести к повреждению файла по различным причинам, связанным с архитектурами документов. Пакет OOXML является сжатым (или сжимаемым) пакетом (package), который содержит документы XML и прочие ресурсы, такие как определения стилей, связанных с документом(ами). Доступ к содержимому пакета OOXML может быть осуществлен приложением или инструментом, не активируя приложение для редактирования самих документов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Данный раздел «Сущность Изобретения» предоставлен в качестве ознакомления в упрощенном виде с подборкой концепций, которые дополнительно описаны ниже в разделе «Подробное Описание». Данное краткое изложение сущности изобретения не предназначено ни для установления ключевых признаков или неотъемлемых признаков изобретения, ни для использования в качестве средства при определении объема заявленного изобретения.
Варианты осуществления направлены на удаление неиспользуемых, продублированных или поврежденных стилей из основанных на XML файлов документов. Удаление может затрагивать часть документа, которая относится к пользовательским стилям, используя системный ввод-вывод, и может быть основано на анализе информации, которая содержится в сжимаемом пакете соответствующего файла документа. Так же может удаляться прочее поврежденное содержимое файла, такое как поврежденные диапазоны имен или неиспользуемые определения форматов, используя тот же подход.
Эти и прочие признаки и преимущества станут очевидными из прочтения нижеследующего подробного описания и просмотра связанных чертежей. Следует понимать, что как предшествующее общее описание, так и нижеследующее подробное описание являются пояснительными и не ограничивают аспекты в соответствии с тем, что заявлено.
ПЕРЕЧЕНЬ ЧЕРТЕЖЕЙ
Фиг.1 является схемой, иллюстрирующей примеры локального и удаленного алгоритмов удаления повреждений;
Фиг.2 иллюстрирует схему системы, отображающую главные компоненты алгоритма удаления повреждений;
Фиг.3 иллюстрирует отдельные модули в алгоритме удаления повреждений;
Фиг.4 концептуально иллюстрирует удаление поврежденных определений стилей из документа XML;
Фиг.5 является сетевой средой, в которой может быть реализована система в соответствии с вариантами осуществления;
Фиг.6 является структурной схемой характерной вычислительной рабочей среды, в которой могут быть реализованы варианты осуществления; и
Фиг.7 иллюстрирует логическую блок-схему для процесса удаления поврежденных стилей в документах XML в соответствии с вариантами осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
Как вкратце описано выше, неиспользуемые, продублированные или поврежденные стили могут быть удалены из части файлов XML, которая относится к стилям, используя компоненты системного ввода-вывода. Анализ информации, которая содержится в части пакета XML, может управлять удалением поврежденных частей. Также может удаляться прочее некорректное содержимое файла. В нижеследующем подробном описании делаются ссылки на сопроводительные чертежи, которые являются частью описания и которые показаны в качестве иллюстрации конкретных вариантов осуществления или примеров. В прилагаемых чертежах подобные цифровые обозначения представляют подобные элементы на протяжении нескольких фигур. Эти аспекты могут объединяться, могут использоваться другие аспекты, и могут быть выполнены структурные изменения, не отступая от сущности и объема настоящего изобретения. Вследствие этого нижеследующее подробное описание не должно рассматриваться в духе ограничения, а объем настоящего изобретения определяется прилагаемой формулой изобретения и ее эквивалентами.
Несмотря на то, что варианты осуществления будут описаны в общем контексте программных модулей, которые исполняются применительно к прикладной программе, которая исполняется в операционной системе на персональном компьютере, специалистам в соответствующей области техники следует понимать, что аспекты также могут быть реализованы в сочетании с прочими программными модулями.
Как правило, программные модули включают в себя процедуры, программы, компоненты, структуры данных и прочие типы структур, которые выполняют конкретные задачи или реализуют определенные абстрактные типы данных. Более того, специалистам в соответствующей области техники следует иметь в виду, что варианты осуществления могут быть воплощены на практике при помощи других конфигураций компьютерных систем, включая переносные устройства, многопроцессорные системы, программируемую или основанную на микропроцессоре потребительскую электронику, мини-компьютеры, компьютеры класса мэйнфрейм и сопоставимые вычислительные устройства. Варианты осуществления также могут быть воплощены на практике в распределенных вычислительных средах, в которых задачи выполняются удаленными устройствами обработки данных, которые связаны посредством сети связи. В распределенной вычислительной среде программные модули могут размещаться как на локальных, так и удаленных запоминающих устройствах.
Варианты осуществления могут быть реализованы в качестве реализуемого компьютером процесса (способа), вычислительной системы или промышленного изделия, такого как компьютерный программный продукт или машиночитаемый носитель информации. Компьютерный программный продукт может быть компьютерным носителем данных, который читается компьютерной системой и на котором закодирована компьютерная программа, которая содержит инструкции, предписывающие компьютерной или вычислительной системе выполнить характерный процесс(ы). Машиночитаемый носитель данных может быть, например, реализован посредством одного или более из временной компьютерной памяти, постоянной памяти, накопителя на жестком диске, накопителя на флэш-памяти, гибкого диска, компакт-диска и сопоставимых носителей данных.
В данном техническом описании под понятием «платформа» может пониматься сочетание компонентов программного и аппаратного обеспечения для управления функционированием компьютера и сети. Примеры платформ включают в себя, но не в ограничительном смысле, размещенную услугу, исполняемую множеством серверов, приложение, исполняемое одним сервером, или сопоставимые системы. Понятие «сервер» в целом относится к вычислительному устройству, исполняющему одну или более программ программного обеспечения, как правило, в сетевой среде. Тем не менее, сервер также может быть реализован в качестве виртуального сервера (программ программного обеспечения), исполняемого на одном или более вычислительных устройствах, рассматриваемых в сети в качестве сервера. Дополнительные подробности применительно к этим технологиям и примеры функционирования представлены ниже.
Фиг.1 является схемой, иллюстрирующей примеры локального и удаленного алгоритмов удаления повреждений. На схеме 100 исполняемый локально алгоритм 112 может осуществлять доступ к документам XML, которые локально хранятся на компьютере 110. Компьютером может быть любое вычислительное устройство, такое как настольный компьютер, ноутбук, переносной компьютер, сотовый телефон, интеллектуальный телефон, PDA или аналогичные устройства. Алгоритм может оценивать повреждение определений пользовательских стилей и удалять их (например, удалять определения пользовательских стилей). Также алгоритм может оставлять используемые определения стилей после определения тех, которые используются документом, чтобы предотвратить повреждение документа из-за количества стилей, которое превышает заранее определенное пороговое значение. Аналогичным образом, локальный алгоритм 122 может исполняться на компьютере 120 класса лэптоп и т.д.
Локальные алгоритмы могут быть предоставлены вычислительным устройствам (110, 120) разнообразными способами, такими как посредством загрузки из сети, установки вручную (например, используя портативное запоминающее устройство) или сопоставимыми способами. В соответствии с некоторыми вариантами осуществления несколько экземпляров локального алгоритма могут исполняться для обработки нескольких документов. В каждом случае необязательно активировать приложение, связанное с документом (например, приложение работы с электронными таблицами, приложение обработки текстов и т.д.), поскольку алгоритм может осуществлять доступ к частям, которые относятся к стилям, не открывая документ.
В других вариантах осуществления алгоритм удаления может размещаться на удаленном сервере 140. Локальные компьютеры 110 и 120 могут осуществлять доступ к документам на сервере документов через сеть(и) 130, как, например, в web-услуге совместного использования документов. Совместно используемые документы могут включать в себя электронные таблицы, документы обработки текстов, презентации и т.д., структурированные в качестве документов XML. Таким образом, документы могут храниться в пакетах, содержащих документы XML и прочие ресурсы, такие как определения стилей, связанные с документом(ами). Удаленный алгоритм может периодически или по запросу сканировать документы и удалять поврежденные пользовательские стили, не открывая соответствующие документы.
Фиг.2 иллюстрирует схему системы, отображающую главные компоненты алгоритма удаления повреждений. На схеме 200 обработчик 220 документов может быть фильтрующим приложением для быстрой обработки документов XML. Такой модуль может открывать множество документов XML, включая, но не в ограничительном смысле, электронные таблицы, диаграммы, документы обработки текстов и презентации. Обработчик 220 документов может быстро открывать документы посредством использования системного I/O.
Инструмент 230 формирования стилей может быть графическим набором инструментов для использования модуля базового приложения, а именно синтаксического анализатора 210 файла. Инструмент 230 формирования стилей может представлять пользователю интерфейс с тем, чтобы пользователь имел возможность графического взаимодействия с синтаксическим анализатором файла. Модуль 240 поддержки пакета может определять допустимость запрашиваемого пользователем или запрашиваемого системой пакета XML и открывать пакет в байтовом потоке. Синтаксический анализатор 210 файла может программным путем удалять неиспользуемые, продублированные или поврежденные стили из части пакета XML, которая относится к стилям, не активируя «толстого» клиента (полнофункциональное приложение, которое связано с конкретным типом документа), на основе анализа информации, которая содержится в частях пакета XML соответствующих файлов.
Фиг.3 иллюстрирует отдельные модули в алгоритме удаления повреждений. Модуль 300 синтаксического анализатора файла может реализовывать характерный алгоритм удаления повреждений, основанный на определении пользовательского стиля, в соответствии с некоторыми вариантами осуществления. Компонент 320 модуля 300 синтаксического анализатора файла получает информацию о стилях из частей пакета XML, которые относятся к стилям, применительно к документу, не активируя приложение «толстого» клиента, в то время как другой компонент 330 может копировать содержимое файла из одного экземпляра файла в другой. Впрочем, изменения могут выполняться над тем же самым файлом, который хранится в памяти. Модуль 300 синтаксического анализатора файла может удалять (310) неиспользуемые стили посредством сканирования всех частей, которые относятся к стилям, содержащихся в пакете XML (например, посредством компонента 320), сопоставляя стили, которые определены в документе, с частями, которые содержатся в пакете, и идентифицируя неиспользуемые и/или продублированные стили. Продублированные стили также могут удаляться.
Модуль 300 синтаксического анализатора файла также может осуществлять проверку (312) в отношении исправляемых стилей из числа пользовательских стилей. Стили по умолчанию (в противоположность пользовательским стилям), также именуемые как встроенные стили, менее восприимчивы к повреждению, однако в некоторых случаях они также могут быть повреждены. Поврежденные встроенные стили, как правило, не могут быть удалены с помощью объектной модели клиентского приложения, однако к ним может быть осуществлен доступ и они могут быть исправлены с помощью алгоритма, который описывается в данном документе. В соответствии с другими вариантами осуществления компонент модуля 300 синтаксического анализатора файла может приводить (314) все стили в нормальное состояние посредством перенастройки стилей в формат по умолчанию. Еще один компонент может предоставлять возможность для опционального отображения (316) документа.
Модуль 300 синтаксического анализатора файла также может предоставлять пользователю информацию о стилях в целях обеспечения обратной связи или конфигурации. Кроме того, информация о стилях может использоваться, как рассмотрено выше, в процессе автоматического принятия решения алгоритмом в отношении того, оставить либо отбросить используемые пользовательские стили.
Фиг.4 концептуально иллюстрирует удаление поврежденного определения стиля из документа XML. Алгоритм удаления, реализуемый синтаксическим анализатором 420 файла, может сканировать документ 410 с несколькими определениями стилей, некоторые из которых могут быть поврежденными, неиспользуемыми или продублированными. Как только идентифицированы поврежденные, неиспользуемые и/или продублированные стили, синтаксический анализатор 420 файла может предпринять попытку их удаления, что приводит в результате к документу 430 со скорректированными определениями стилей. Если удаление недопустимо или не выполнено, то синтаксический анализатор 420 файла может задать документу формат по умолчанию со стилями по умолчанию клиентского приложения посредством выполнения операции приведения в нормальное состояние.
Операции копирования и вставки между документами могут увеличить количество пользовательских стилей в итоговом документе, поскольку форматирование копируемых данных также переносится в новый документ. Может существовать заранее определенное предельное количество пользовательских стилей для каждого клиентского приложения. Если количество пользовательских стилей превышает предельное значение, то документ становится поврежденным и переходит в неисправимое состояние. Заранее определенное предельное значение пользовательских стилей до того, как произойдет неисправимое повреждение, может быть относительно высоким (например, 65534 для некоторых приложений работы с электронными таблицами). Тем не менее, в среде с совместным использованием документов, в которой данные в документе непрерывно модифицируются, копируются, вставляются несколькими пользователями, такое предельное значение может быть достигнуто за относительно короткий интервал времени. Для предотвращения возникновения разочарования пользователя и траты времени и энергии на повторное создание документа(ов) алгоритм удаления повреждений может исполняться в фоновом режиме такой услуги совместного использования документов, непрерывно сокращая количество определений стилей, связанных с каждым документом, посредством удаления поврежденных, неиспользуемых или продублированных стилей.
Алгоритм может использовать библиотеку системного ввода/вывода (I/O) для прямого доступа к файлам XML. Библиотеки системного I/O обеспечивают прямой доступ к поврежденным файлам. Это может исключить потребность в открытии поврежденного файла в ассоциированном приложении, таком как приложение обработки текстов, приложение работы с электронными таблицами, приложение работы с диаграммами, приложение просмотра или приложение работы с презентациями, с тем чтобы привести в порядок стили или другое содержимое.
В соответствии с некоторыми вариантами осуществления алгоритм удаления повреждений в документе XML может быть автономным исполняемым в командной строке файлом. В соответствии с другими вариантами осуществления алгоритм может быть реализован в качестве независимого приложения с графическим интерфейсом пользователя. В соответствии с дополнительными вариантами осуществления алгоритм может быть реализован в качестве библиотеки на стороне сервера, объединенной с приложениями на стороне сервера для автоматической коррекции документов (например, функция или набор инструментов на стороне сервера).
Рассмотренные выше системы и реализации алгоритма удаления повреждений стилей служат в целях иллюстрации, а не накладывают ограничение на варианты осуществления. Поврежденные, неиспользуемые или продублированные стили могут удаляться из структурированных документов, таких как документы XML, с помощью других модулей, процессов и конфигураций, используя рассмотренные здесь принципы.
Фиг.5 является характерной сетевой средой, в которой могут быть реализованы варианты осуществления. Алгоритм удаления повреждений в пользовательских стилях может быть реализован посредством программного обеспечения, исполняемого на одном или более серверах 544 или одном сервере 546 (например, web-сервере), таком как размещенная услуга. Платформа может осуществлять связь с приложениями «тонкого» клиента на отдельных вычислительных устройствах, таких как интеллектуальный телефон 543, компьютер 542 класса лэптоп или настольный компьютер 541 (клиентские устройства) через сеть(и) 540.
Как рассмотрено выше, сервер документов может исполнять алгоритм на стороне сервера для обработки документов, которые хранятся на сервере. Пользователь может запустить алгоритм удаления повреждений на конечном устройстве (любом из клиентских устройств 541-543 или интеллектуальном телефоне, компьютере, интеллектуальной автомобильной консоли и т.д.). Алгоритм может удалять неиспользуемые или поврежденные стили из документов XML автоматически или по запросу.
Клиентские устройства 541-543 могут обеспечивать доступ к приложениям, исполняемым на удаленном сервере(ах) (например одном из серверов 544), как рассмотрено ранее. Сервер(ы) могут извлекать или сохранять соответствующие данные из/в хранилища 549 данных напрямую или через сервер 548 базы данных.
Сеть(и) 540 может быть выполнена с любой топологией серверов, клиентов, поставщиков интернет-услуг и средств связи. Система в соответствии с вариантами осуществления может обладать статической или динамической топологией. Сеть(и) 540 может быть выполнена в виде безопасных сетей, таких как корпоративная сеть, небезопасной сети, такой как беспроводная открытая сеть, или Интернет. Сеть(и) 540 также может координировать связь через другие сети, такие как Телефонная Коммутируемая Сеть Общего Пользования (PSTN) или сотовые сети. Кроме того, сеть(и) 540 может включать в себя беспроводные сети малого радиуса действия, такие как Bluetooth и аналогичные. Сеть(и) 540 обеспечивает связь между описанными здесь узлами. В качестве примера, а не ограничения, сеть(и) 540 может включать в себя беспроводные среды связи, такие как акустические, радиочастотные, инфракрасные или другие беспроводные среды связи.
Множество других конфигураций вычислительных устройств, приложений, источников данных и систем распределения данных может использоваться для реализации алгоритма удаления повреждений из документов XML. Кроме того, рассмотренные на фиг.5 сетевые среды служат лишь в целях иллюстрации. Варианты осуществления не ограничиваются характерными приложениями, модулями и процессами.
Фиг.6 и связанное с ней рассмотрение предназначены для обеспечения краткого, общего описания приемлемой вычислительной среды, в которой могут быть реализованы варианты осуществления. Со ссылкой на фиг.6 проиллюстрирована структурная схема характерной вычислительной рабочей среды для приложения в соответствии с вариантами осуществления, такой как вычислительное устройство 600. В базовой конфигурации вычислительное устройство 600 может быть клиентским устройством, исполняющим инструмент приведения в порядок документов с помощью удаления поврежденных стилей, и включает в себя, по меньшей мере, один процессор 602 и системную память 604. Вычислительное устройство 600 также может включать в себя множество процессоров, которые работают совместно при исполнении программ. В зависимости от конкретной конфигурации и типа вычислительного устройства, системная память 604 может быть временной (такой как RAM), постоянной (такой как ROM, флэш-память и т.д.) или неким сочетанием их обоих. Системная память 604, как правило, включает в себя операционную систему 605, приемлемую для управления функционированием платформы, такую как операционная система WINDOWS от MICROSOFT CORPORATION, Редмонд, штат Вашингтон. Системная память 604 также может включать в себя одно или более приложений программного обеспечения, таких как программные модули 606, инструмент 622 работы со стилями и модуль 624 синтаксического анализатора файла.
Инструмент 622 работы со стилями может быть частью услуги, которая удаляет пользовательский стиль на основе повреждения в файлах XML на клиентской машине, серверах или других устройствах. Модуль 624 синтаксического анализатора файла может удалять поврежденные, неиспользуемые или продублированные стили из документов XML. Данная базовая конфигурация проиллюстрирована на фиг.6 компонентами, которые обведены пунктирной линией 608.
Вычислительное устройство 600 может обладать дополнительными функциями или функциональными возможностями. Например, вычислительное устройство 600 также может включать в себя дополнительные запоминающие устройства (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или лента. Такое дополнительное хранилище проиллюстрировано на фиг.6 посредством съемного хранилища 609 и несъемного хранилища 610. Машиночитаемый носитель данных может включать в себя временный или постоянный, съемный или несъемный носитель информации, реализованный любым способом или по любой технологии для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули и прочие данные. Системная память 604, съемное хранилище 609 и несъемное хранилище 610 являются примерами машиночитаемых носителей данных. Машиночитаемый носитель данных включает в себя, но не ограничивается, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, универсальный цифровой диск (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках, или другие магнитные запоминающие устройства, или любой другой носитель информации, который может использоваться для хранения требуемой информации и доступ к которому может быть осуществлен посредством вычислительного устройства 600. Вычислительное устройство 600 также может иметь устройство(а) 612 ввода, такое как клавиатура, манипулятор типа мышь, перо, устройство голосового ввода, устройство тактильного ввода и сопоставимые устройства ввода. Также в состав может быть включено устройство(а) 614 вывода, такое как дисплей, громкоговорители, принтер и другие типы устройств вывода. Эти устройства хорошо известны в соответствующей области техники, и их дальнейшее рассмотрение не требуется.
Вычислительное устройство 600 также может содержать соединения 616 связи, которые позволяют устройству осуществлять связь с другими устройствами 618, как например, через беспроводную сеть в распределенной вычислительной среде, спутниковую линию связи, сотовую линию связи или сопоставимые механизмы. Другие устройства 618 могут включать в себя компьютерное устройство(а), которое исполняет приложения связи, другие серверы каталогов или политик, и сопоставимые устройства. Соединение(я) 616 связи является одним примером сред связи. Среды связи могут содержать в себе машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или другой механизм транспортировки, и включают в себя любое средство доставки информации. Понятие «модулированный сигнал данных» означает сигнал, который обладает одной или более своими характеристиками, которые устанавливаются или изменяются таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среды связи включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и прочие беспроводные среды.
Характерные варианты осуществления также включают в себя способы. Эти способы могут быть реализованы несколькими путями, включая структуры, описанные в данном документе. Один такой путь заключается в реализации посредством машинных операций со стороны устройств типов, описанных в данном документе.
Другой опциональный путь заключается в том, что применительно к одной или более из отдельных операций способов они должны выполняться совместно с одним или более людьми-операторами, которые выполняют некоторые из них. Эти люди-операторы не обязательно должны находиться рядом друг с другом, но каждый может находиться рядом с машиной, которая выполняет часть программы.
Фиг.7 иллюстрирует логическую блок-схему для процесса 700 удаления поврежденных стилей в документах XML в соответствии с вариантами осуществления. Процесс 700 может быть реализован алгоритмом на стороне клиента или алгоритмом на стороне сервера как части сервера хранения документов.
Процесс 700 начинается с операции 710, которая может проверять то, что пакет является пакетом XML, идентифицируя файл как пакет XML, и определять, является ли пакет XML допустимым. Допустимость пакета XML может определять, может ли применяться алгоритм для коррекции какого-либо повреждения стиля в документе. Алгоритм может определять допустимость файла XML посредством проверки того, обладает ли файл всеми частями, которые определены стандартом для пакетирования документов XML. На операции 720 алгоритм может считывать информацию о стилях из частей пакета, которые относятся к стилям, не открывая соответствующий документ(ы) в приложении «толстого» клиента. Собранная информация о стилях может использоваться для сопоставления на операции 730 стилей с частями документа, определяя на операции 740 неиспользуемые, поврежденные и продублированные стили.
Другой точкой принятия решения для алгоритма может быть количество стилей. Как упомянуто ранее, может существовать предельное значение для количества пользовательских стилей, которые могут использоваться в документе. Если это предельное значение превышено, то весь документ может быть поврежден и неисправим. Таким образом, алгоритм может корректировать повреждения посредством удаления неиспользуемых и/или продублированных стилей, как впрочем, и поврежденных, на операции 750. В качестве альтернативы, алгоритм может возвращать документ назад к стилям по умолчанию. Алгоритм также может идентифицировать и удалять другое поврежденное содержимое, подобное поврежденным диапазонам имен, и удалять их. В случае другого содержимого подход аналогичен тому, который используется для стилей: могут быть считаны определения частей; может быть определено, повреждена ли часть; если часть не повреждена, может быть идентифицировано содержимое, которое требуется удалить (например, тестирование на дубликаты, тестирование на то, используется ли в документе часть содержимого, и разметка как используемой и/или неиспользуемой). Затем пользователям может быть предоставлена возможность принятия решения по пути приведения в порядок, например, оставить или удалить определения, помеченные как неиспользуемые.
Операции, включенные в процесс 700, приведены в качестве иллюстрации. Процесс удаления повреждений в соответствии с вариантами осуществления может быть реализован посредством аналогичных процессов с меньшим количеством или с дополнительными этапами, как впрочем, и в другой очередности операций, используя описанные здесь принципы.
Приведенное выше техническое описание, примеры и данные обеспечивают полное описание для производства и использования композиции вариантов осуществления. Несмотря на то, что изобретение было описано языком, который специфичен для структурных признаков и/или методологических действий, следует понимать, что объект изобретения, который определен в прилагаемой формуле изобретения, не обязательно ограничивается конкретными описанными здесь признаками и действиями. Скорее конкретные описанные здесь признаки и действия рассмотрены в качестве характерных форм реализации формулы изобретения и вариантов осуществления.