Настоящее изобретение относится к способу преобразования в электронный документ потока битов, содержащего данные, которые имеют структуру и содержимое, соответствующие некоторому формату, причем упомянутый способ предназначен для формирования древовидного представления упомянутого потока. Изобретение также относится к способу формирования потока битов согласно некоторому формату из документа, который представляет собой древовидное представление упомянутого потока битов и который содержит данные, в особенности импортируемые данные, посредством использования некоторого режима импорта. Изобретение также относится к структуре данных, образующей схему для преобразования потока битов в электронный документ и определяющей один или несколько типов данных, которые могут иметь один или несколько аспектов, и содержащей множество элементов, для которых она описывает имя, тип данных, расположение с перекрытием, порядок и предварительно определенное или случайное количество появлений, причем появление элемента является обязательным или факультативным.
Изобретение также относится к компьютерным программам для осуществления таких способов, к обрабатывающему блоку, содержащему средство памяти для хранения упомянутых структуры данных и компьютерных программ, а также к системе передачи, содержащей, по меньшей мере, объект источника и объект адресата, причем упомянутый объект источника содержит упомянутый обрабатывающий блок.
Изобретение может применяться в области редактирования, изменения и объединения содержимого. Примером применения изобретения является адаптация содержимого, подлежащего передаче адресату как функции профиля пользователя (экран, вычислительная производительность, объем памяти, канал связи, используемый для передачи и т.д.). Такая адаптация позволяет избежать бесполезных передач данных, которые получатель не сможет использовать, и, таким образом, сэкономить на полосе пропускания.
В этом отношении в заявке на патент Франции №0101530, поданной 05.02.2001 г. Конинклийке Филипс Электронике Н.В., уже описан способ генерации файла с некоторыми характеристическими свойствами из основного документа, написанного на языке разметки и описывающего основной последовательный файл, причем упомянутый способ содержит этап преобразования для генерации преобразованного документа посредством применения к основному документу предварительно определенного преобразования, которое является функцией упомянутых характеристических свойств, причем файл с упомянутыми характеристическими свойствами генерируется из преобразованного документа. Этот способ включает в себя выполнение необходимых преобразований основного документа, в котором очевидна структура последовательного файла. Это позволяет исключить необходимость декодирования основного последовательного файла для его повторного кодирования иным образом.
Однако этот способ генерации файла подразумевает генерацию основного документа, который описывает основной последовательный файл, а затем генерацию другого файла из преобразованного документа.
Задачей настоящего изобретения является создание автоматически выполняемого обобщенного способа выполнения таких операций.
В соответствии с изобретением указанный результат достигается посредством структуры данных, которая образует схему для преобразования потока битов в электронный документ на языке разметки или наоборот, определяет один или более типов данных, которые могут иметь один или более аспектов, причем аспект соответствует ограничению, наложенному на набор значений типа данных и содержит множество элементов, для которых она описывает имя, тип данных, расположение с перекрытием, порядок и предварительно определенное или случайное количество появлений, причем появление элемента является обязательным или факультативным, а также определяет один или более типов данных, которые соответствуют двоичным словам предварительно определенной длины или длин и которые имеют, по меньшей мере, аспект, относящийся к упомянутой длине. Упомянутая структура данных отличается тем, что она определяет одну или более переменных, составляемых путем доступа к данным, причем она содержит одно или несколько условных ветвлений для описания различных структур или возможного содержимого как функции значения упомянутых одной или более переменных, и, факультативно, имеет, по меньшей мере, один из следующих характеристических признаков: упомянутая структура данных определяет тип данных, который соответствует двоичным сегментам неопределенной длины и который имеет, по меньшей мере, аспект, указывающий, должны ли двоичные сегменты быть преобразованы и введены в электронный документ или двоичные сегменты должны содержаться в двоичном файле, и указатели на двоичный файл должны быть введены в электронный документ, и аспект, относящийся к флагу останова двоичного сегмента, причем структура данных определяет аспект, относящийся к заполняющим битам, содержащимся в упомянутых двоичных словах предварительно определенной длины или длин.
Кроме того, в соответствии с изобретением способ преобразования потока битов в электронный документ на языке разметки, содержащего данные со структурой и содержимым согласно некоторому формату, и электронный документ является древовидным представлением упомянутого потока битов, содержит этапы считывания структуры данных, поиска в упомянутом потоке битов данных, которые соответствуют элементам, содержащимся в упомянутой структуре данных, формирования экземпляра упомянутой структуры данных, который содержит данные, найденные в упомянутом потоке битов, и который составляет упомянутое древовидное представление.
Кроме того, в соответствии с изобретением способ формирования потока битов согласно некоторому формату из электронного документа на языке разметки, представляющему собой древовидное представление потока битов и содержащему данные, импортируемые посредством использования преобразования данных, чтобы ввести данные в электронный документ, или посредством использования указателей на двоичный файл, содержащий данные, содержит этапы считывания упомянутого документа, параллельного считывания структуры данных, которая обобщенным образом описывает упомянутый формат, кодирования упомянутых данных как функции определяемого типа, составления потока битов из кодированных данных.
Изобретение также относится к компьютерным программам, содержащим команды и обеспечивающим при загрузке в процессор выполнение процессором способа преобразования потока битов в электронный документ на языке разметки и способа формирования потока битов согласно некоторому формату из электронного документа на языке разметки.
Кроме того, в соответствии с изобретением обрабатывающий блок содержит средство памяти для хранения структуры данных и средство памяти для хранения программы, которая содержит команды для осуществления способа синтаксического анализа потока битов, основанного на упомянутой структуре данных, для формирования документа на языке разметки, который представляет упомянутый поток битов, который является экземпляром упомянутой структуры данных, и/или программы, которая содержит команды для осуществления способа формирования потока битов, основанного на упомянутой структуре данных и на документе, представляющем упомянутый поток битов, который является экземпляром упомянутой структуры данных.
Изобретение также относится к системе передачи, содержащей, по меньшей мере, объект источника и, по меньшей мере, объект адресата, причем объект источника содержит заявленный обрабатывающий блок.
Изобретение поясняется ниже со ссылками на чертежи, на которых показано следующее:
фиг.1 - блок-схема, иллюстрирующая выполнение синтаксического анализа в способе преобразования потока битов в электронный документ согласно изобретению,
фиг.2 - блок-схема, иллюстрирующая способ создания потока битов согласно изобретению и
фиг.3 - пример системы передачи согласно изобретению.
На фиг.1 представлена блок-схема, объясняющая основной режим способа преобразования потока битов в электронный документ. Блок В1 представляет поток битов в соответствии с предварительно определенным форматом. Блок В2 представляет схему, которая в обобщенном виде описывает упомянутый предварительно определенный формат. Блок В3 представляет синтаксический анализатор, который позволяет выполнять синтаксический анализ потока В1 битов для создания документа В4, который представляет собой древовидное представление потока В1 битов и экземпляр схемы В2.
Схема В2 описывает синтаксис потока битов. В особенности, она определяет тип данных, которые могут иметь место в потоке битов, и метод, которым они должны быть включены в документ. Древовидное представление В4 создается в зависимости от анализа потока В1 битов.
На фиг.2 представлена блок-схема, объясняющая принцип действия способа формирования потока битов согласно изобретению. Блок В'2 представляет схему, которая описывает формат кодирования в обобщенном виде. Блок В'4 представляет документ, который представляет собой экземпляр схемы В'2. Блок В'3 представляет генератор потока битов, который позволяет выполнять параллельное считывание документа В'4 и схемы В'2 для создания потока В'1 битов. Предпочтительно, схемы В2 и В'2, используемые для одного формата кодирования, идентичны.
Документ В'4 считывается схемой В'2 с целью определения типа данных, которые содержатся в документе В'4. Для значения, считанного из документа В'4, соответствующий тип данных, обнаруживаемых в схеме В'2, определяет режим кодирования, который должен использоваться для кодирования упомянутого значения.
В целом, конечно, не является необходимым предоставление полной детализации структуры формата кодирования в схеме. Степень детализации зависит от рассматриваемого применения. Для применения, описанного в заявке на патент Франции №0101530, упомянутого в вводной части настоящей заявки (способ генерации файла - например файла JPEG2000 - характеристические свойства которого адаптированы к профилю получателя), некоторые сегменты маркеров JPEG2000 должны быть даны подробно, параметр за параметром, чтобы можно было выполнить восстановление упомянутых параметров и модифицирование их. Другие сегменты маркеров обрабатываются как блоки, так как нет необходимости иметь доступ к параметрам, которые они содержат.
Документы В4 и В'4 предпочтительно являются документами расширяемого языка разметки (XML), и схемы В2 и В'2 написаны на новом языке, полученном из языка описания схемы XML. XML является рекомендацией консорциума Всемирной паутины (расширяемый язык разметки, версия 1.0, от 06.10.2000), и схема XML представляет собой проект рекомендации консорциума Всемирной паутины, датированный 24.10.2000. Рекомендация XML и проект рекомендации схемы XML доступны на сайте Интернета http://www.w3.org/. Однако это не является ограничивающим, и принципы изобретения, которые подробно описаны в остальной части описания, могут быть применены при использовании языков другого типа, например языков типа описания структуры документа (DSD), предложенного компанией AT&T и BRICS университета г.Орхус в Дании, и доступных на сайте в Интернете http://www.brics.dk/DSD/.
С физической точки зрения XML-документ содержит, в особенности, элементы, которые могут быть проанализированы и могут содержать текст, т.е. последовательность знаков, принадлежащих предварительно определенному набору знаков, и которые представляют тег или текстовые данные.
С точки зрения логики XML-документ содержит один или несколько элементов, границы которого отмечаются флагом начала и флагом останова. Элементы могут быть включены в другие элементы (что образует расположение с перекрытием). Каждый элемент идентифицируется именем, которое указывается в его флаге начала и в его флаге останова. Элемент может иметь значение. Значение элемента размещается между его флагом начала и его флагом останова.
В примере, который описывается ниже, данные выбираются для размещения непосредственно в элементах XML-документа, чтобы упростить реализацию (т.е. данные, содержащиеся в XML-документе, составляют значения элементов XML).
Схема XML представляет собой язык описания схемы, который позволяет осуществлять определение содержимого и структуры XML-документа: в частности, схема XML позволяет описывать элементы и для каждого элемента имя, тип данных, расположение с перекрытием, порядок и количество появлений. Порядок и количество появлений может быть предварительно определено или быть неопределенным. Появление элемента может быть обязательным или дополнительным.
Схема определяет класс XML-документов. Экземпляром схемы XML является XML-документ, который действителен в отношении упомянутой схемы.
В нижеследующем описании, чтобы дать конкретный пример осуществления изобретения, рассматриваются потоки битов формата JPEG2000. Это уже не является ограничивающим, и ясно, что изобретение может быть применено к другим форматам. Для некоторых форматов может быть необходимым добавить другие типы данных к тем, которые здесь описаны.
В Приложении А приведен пример схемы, которая описывает формат кодирования JPEG2000. В этой схеме используются простые типы данных, которые являются обобщенными и которые определены в Приложении В, и простые типы данных, полученные из этих обобщенных типов, которые определены в Приложении С. В Приложении D приведен пример XML-документа, который является экземпляром схемы, приведенной в Приложении А, и который представляет поток битов JPEG2000. В Приложениях А, В и С и в нижеследующем описании буквы ≪xsd≫ обозначают инструменты, которые определяются в схеме XML. И буквы ≪bsd≫ обозначают инструменты, которые добавляются изобретением.
Согласно изобретению схема В2 (которая считается идентичной схеме В'2 в нижеследующем описании) определяет тип всех данных, которые могут содержаться в потоке согласно формату JPEG2000. Некоторые типы данных уже существуют в языке описания схемы XML и могут быть непосредственно использованы. Другие должны быть модифицированы. Другие должны быть добавлены.
Поток данных согласно формату JPEG2000 более конкретно содержит следующие типы данных:
1) двоичные сегменты неопределенных длин, содержимое которых может быть импортировано в XML-документ посредством использования первого или второго режима импорта, описанного ниже,
2) двоичные слова различных длин, которые могут содержать биты заполнения, которые не являются старшими,
3) маркеры, значение которых определяется в шестнадцатеричном коде в стандарте JPEG2000 и которые импортируются в шестнадцатеричном коде в XML-документ. Этот импорт в шестнадцатеричном коде составляет третий режим импорта.
Первый режим импорта содержит преобразование двоичных данных в знаки, которые принадлежат предварительно определенному набору знаков, используемому XML. С этой целью предпочтительно используется способ кодирования, известный под названием ≪base 64≫ и описанный в параграфе 6.8 документа RFC 2045, опубликованного Целевой группой инженерной поддержки Интернета. Этот способ содержит разделение двоичных данных и преобразование их в группы по 6 битов и связывание каждой группы из 6 битов со знаком из предварительно определенного набора знаков. Этот первый режим импорта вызывает расширение данных на 33%.
Во втором режиме импорта вместо преобразования двоичных данных в знаки для вставки их непосредственно в XML-документ, в XML-документ вводятся указатели на область двоичного файла, содержащую упомянутые двоичные данные. XML-документ тогда становится зависимым от упомянутого двоичного файла.
В языке описания схемы XML определяется тип данных в качестве триплета, который содержит:
- набор значений, называемый пространством значений,
- набор лексических представлений, называемый лексическим пространством,
- набор аспектов, причем аспект соответствует ограничению, наложенному на пространство значений.
Для осуществления изобретения кодирование данных, которые записаны в потоке битов, должно быть однозначным и неявным. Непосредственно используются некоторые типы данных, которые ранее имели место в схеме XML и являются однозначными и неявными: это в случае, например, типов данных ≪xsd: unsignedShort≫, которые представляют целое число от -32768 до +32767 и которое, таким образом, может быть неявно закодировано двумя байтами. Это также в случае ≪xsd: unsignedint≫ и ≪xsd: unsignedByte≫.
Согласно изобретению также используется тип данных ≪xsd:binary≫, но посредством его модифицирования:
1) К нему добавляется аспект, относящийся к флагу останова, названный ≪bsd: stopFlagExclusive≫. Этот аспект используется для указания окончания двоичного сегмента неопределенной длины: например, пакеты JPEG2000, которые являются двоичными сегментами неопределенной длины, определяются либо маркером SOP (начало пакета), либо маркером SOT (начало элемента мозаичного изображения), либо маркером ЕОС (окончание кодового потока); таким образом, для пакета JPEG2000 этот аспект принимает одно из трех значений: FF51 (SOP), FF90 (SOT) или FFD9 (ЕОС).
2) Новое возможное значение добавляется к аспекту ≪encoding≫, который уже существует в языке описания схемы XML со значениями ≪hex≫ для шестнадцатеричного кода и ≪base 64≫ для импорта после преобразования кодом Base-64. Новое добавляемое значение называется ≪externalData≫. Оно используется для указания того, что данные импортируются в XML-документ посредством использования вышеупомянутого второго режима импорта (введение в XML-документ указателя, который указывает на область потока битов, которая содержит рассматриваемые данные).
Этот модифицированный тип данных называется ≪binaryNoLength≫ и определяется следующим образом в Приложении С:
<xsd:simpleType name="binaryNoLength">
<xsd:annotation>
<xsd:appinfo>
<!-- Считывание данных до обнаружения флага -->
<xsd:hasFacet name="stopFlagExclusive"/>
<!-- Как двоичным данным должны быть приписаны значения: -->
<!-- base64, hex (такие же как для xsd:binary) -->
<!-- externalData (универсальный идентификатор ресурса (URI), указывающий на внешний сегмент данных объекта) -->
<xsd:has Facet name="encoding"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:restriction base="xsd:anySimpleType"/>
</xsd:simpleType>
Этот модифицированный тип данных, который является обобщенным типом, затем используется для получения других типов конкретных данных, которые могут быть найдены в потоке битов XML. Например, как указано в Приложении В, тип ≪PacketDataTYpe≫, который соответствует пакетам JPEG2000, получается из обобщенного типа ≪binaryNoLength≫. В этом примере видно, что данные, содержащиеся в этих пакетах, импортируются в XML-документ посредством использования второго режима импорта (указатель на область потока битов, которая содержит данные). Также видно, что пакет JPEG2000 определяется маркером, который имеет одно из следующих трех значений: FF51, FFD9 или FF90.
<xsd:simpleType name="packetDataType">
<xsd:restriction base="bsd:binaryNoLength">
<xsd:encoding value="externalData"/>
<bsd:stopFlagExclusive value="FF51|FFD9|FF90"/>
</xsd:restriction>
</xsd:simpleType>
Хотя ссылка делается на Приложение А, считается, что другие элементы имеют тип, получаемый из ≪binaryNoLength≫, например, элемент, названный ≪Data≫ в элементе комплексного типа СОС. Этот элемент ≪Data≫ имеет аспект ≪encoding≫, значение которого составляет ≪base 64≫, которое означает, что соответствующие данные импортируются из потока битов в XML-документ в результате использования преобразования кодом Base-64.
<xsd:complexType name="COCType">
<xsd:sequence>
<xsd: element name="Marker≫type="jp2:markerType≫ fixed="ff53"/>
<xsd:element name="Lcoc≫ type="xsd:unsignedShort"/>
<xsd:element name="data">
<xsd:simpleType>
<xsd:restriction base="xsd:binary">
<xsd:length value="SLcoc"/>
<xsd:encoding value="base64"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
Изобретение также предусматривает добавление нового типа данных, предназначенного для использования для двоичных слов с предварительно определенной длиной. Этот новый тип данных называется ≪bsd:bitsArray≫, и он содержит три аспекта: один аспект, названный ≪bitsLength≫, относится к длине двоичного слова, один аспект, названный ≪prePadding≫, относится к количеству битов заполнения, расположенных перед старшим битом или старшими битами, и один аспект, названный ≪postPadding≫, относится к количеству битов заполнения, расположенных после старшего бита или старших битов. Этот новый тип данных определяется в Приложении С следующим образом:
<xsd:simpleType name="bitsArray">
<xsd:annotation>
<xsd:appinfo>
<xsd:hasFacet name="bitsLength"/>
<xsd:has Facet name="prePadding"/>
<xsd:has Facet name="postPadding"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:restriction base="xsd:anySimpleType"/>
</xsd:simpleType>
Как указано в Приложении В, этот новый тип данных, который является обобщенным типом данных, затем используется для получения конкретных типов данных, которые можно найти в потоке JPEG2000. Например, тип данных, названный ≪11b≫, который получается из обобщенного типа данных ≪bitsArray≫, соответствует двоичному слову из 11 битов, которое не содержит битов заполнения:
<xsd:simpleType name="11b">
<xsd:restriction base="bsd:bitsArray">
<bsd:bitsLength value="11"/>
</xsd:restriction>
</xsd:simpleType>
И тип данных, названный ≪5b3p≫, который также получен из обобщенного типа данных ≪bitsArray≫, соответствует двоичному слову из 5 битов, которое содержит 2 старших бита, за которыми следуют 3 бита заполнения.
<xsd:simpleType name="5b3p">
<xsd:restriction base="bsd:bitsArray">
<bsd:bitsLength value="5"/>
<bsd:postPadding value="3"/>
</xsd:restriction>
</xsd:simpleType>
Co ссылкой на Приложение А устанавливается, что используется тип данных ≪11b≫, например, для элемента, названного ≪mantissa≫:
<xsd:element name=″mantissa″type="jp2:11b"/>
и что тип данных ≪5b3p≫ используется, например, для элемента, называемого ≪exponent≫:
<xsd:element name=″exponent″type="jp2:5b3p"/>
С точки зрения структуры в изобретении используются следующие инструментальные средства, которые уже существуют в схеме XML:
- простые и комплексные типы данных ≪xsd:simple Type≫ и ≪xsd: complex Type≫,
- элементы ≪xsd: element≫,
- групповые модели ≪xsd: group≫,
- соединители ≪xsd: sequence≫, ≪xsd: all≫ и, возможно, ≪xsd: choice≫.
Синтаксический анализатор В3 считывает поток В1 битов со схемой В2 для создания древовидного представления В4 потока В1 битов. Это древовидное представление В4 является экземпляром потока В2. Оно создается рекурсивно посредством интерпретации соединителей, найденных в схеме.
Более конкретно, соединитель ≪xsd: sequence≫ интерпретируется синтаксическим анализатором следующим образом:
когда синтаксический анализатор находит соединитель ≪xsd: sequence≫, он считывает элементы в потоке битов в том же порядке, что и в схеме. Например, соединитель ≪xsd: sequence≫ используется в элементах типа ≪CodestreamType≫, определяемого в Приложении А.
<xsd:complexType name="CodestreamType">
<xsd:sequence>
<xsd:element name=″MainHeader″type="jp2:MainHeaderType"/>
<xsd:element name=″Tile″ type="jp2:TileType"/>
<xsd:element name="EOC″type="jp2:EOCType"/>
</xsd:sequence>
</xsd:complexType>
Согласно этому определению элемент ≪Codestream≫ должен содержать элемент ≪MainHeader≫, за которым следует элемент ≪Tile≫, за которым следует элемент ≪ЕОС≫.
Соединитель ≪xsd: all≫ интерпретируется синтаксическим анализатором следующим образом: когда синтаксический анализатор обнаруживает соединитель ≪xsd: all≫, он предпринимает попытку считывания первого декларированного элемента в соединителе ≪xsd: all≫, и, если она завершается неуспешно, он делает попытку считать второй элемент и т.д. Когда он обнаруживает элемент, поиск которого он осуществляет, он переходит к следующему элементу в соединителе ≪xsd: all≫. Он переходит к следующему соединителю только тогда, когда будут просмотрены все элементы соединителя ≪xsd: all≫.
Элемент, обнаруженный в потоке битов, не соответствует элементу, поиск которого осуществляется, когда схема определяет фиксированное значение для этого элемента или для элемента из подэлементов, которые он содержит, и когда это значение не соответствует тому значению, которое обнаруживается в потоке битов. Например, когда синтаксический анализатор пытается реализовать элемент ≪SIZ≫, элементом, считанным из потока битов, не является элемент, поиск которого осуществляется, если он не начинается с ≪FF51≫, которое представляет собой значение, присвоенное маркеру ≪SIZ≫ в стандарте JPEG2000.
Соединитель ≪xsd: all≫, например, используется в элементах типа ≪MainHeader Type≫, определяемого в Приложении А.
<xsd:complexType name="MainHeaderType">
<xsd:sequence>
<xsd:element name="SOC" type="jp2:SOCType"/>
<xsd:element name="SIZ" type="jp2:SIZType"/>
<xsd:group>
<xsd:all>
<xsd:element name="COD" type="jp2:CODType" minOccurs="0"/>
<xsd:element name="QCD" type="jp2:QCDType" minOccurs="0"/>
<xsd:element name="COC" type="jp2:COCType" minOccurs="0"/>
<xsd:element name="QCC" type="jp2:QCCType" minOccurs="0"/>
<xsd:element name="RGN" type="jp2:RGNType" minOccurs="0"/>
<xsd:element name="POC" type="jp2:POCType" minOccurs="0"/>
<xsd:element name="PPM" type="jp2:PPMType" minOccurs="0"/>
<xsd:element name="TLM" type="jp2:TLMType" minOccurs="0"/>
<xsd:element name="PLM" type="jp2:PLMType" minOccurs="0"/>
<xsd:element name="CRG" type="jp2:CRGType" minOccurs="0"/>
<xsd:element name="COM" type="jp2:COMType" minOccurs="0"/>
</xsd:all>
</xsd:group>
</xsd:sequence>
</xsd:complexType>
Согласно этому определению элемент ≪MainHeader≫ должен содержать элемент ≪SOC≫, за которым следует элемент ≪SIZ≫, за которым следует группа, которая может содержать один, или несколько, или ни одного из следующих элементов, взятых в неопределенном порядке: ≪COD≫, ≪QCD≫, ≪COC≫, ≪QCC≫, ≪RGN≫, ≪РОС≫, ≪РРМ≫, ≪TLM≫, ≪PLM≫, ≪CRG≫.
Хотя в Приложении А не приведен никакой пример, также может быть использован соединитель ≪xsd: choice≫. Когда синтаксический анализатор обнаруживает соединитель ≪xsd: choice≫, он предпринимает попытку считывания в потоке битов первого элемента, декларированного в соединителе ≪xsd: choice≫. Когда синтаксический анализатор обнаруживает элемент, поиск которого он осуществляет, он переходит к следующему соединителю в схеме. Если считанным элементом не является элемент, поиск которого осуществляется, то синтаксический анализатор переходит к следующему элементу в этом же соединителе ≪xsd: choice≫.
Кроме того, изобретение предусматривает использование переменных в схемах. Понятие переменной используется в языке преобразования расширяемого языка стилевого оформления (XSLT). XSLT представляет собой язык, определенный консорциумом Всемирной паутины, который позволяет определять преобразования, которые могут быть применены для XML-документов. Конкретно, переменная представляет собой строку символов, связанную с одним значением. Она может появиться в определенной позиции в документе и может быть использована в другом месте. В соответствии с синтаксисом, определенным в XSLT, доступ к значению идентифицированной переменной строкой символов осуществляется посредством размещения знака $ перед строкой символов (другими словами, $ZZZ представляет собой значение переменной, идентифицируемой строкой символов ZZZ). Значение переменной указывается при определении переменной. Изобретение позволяет определять значение переменной в виде пути дерева XML, посредством использования синтаксиса, определенного в языке Xpath (язык описания путей XML). Язык Xpath также является языком, определенным консорциумом Всемирной паутины. Спецификации языков XSLT и Xpath доступны на сайте Интернета http://www.w3.org.
Использование переменной позволяет, например, определить количество элементов посредством параметра вместо определения его постоянным значением. Когда значение параметра дается в начале потока битов и информирует о структуре или содержании остальной части потока битов, то значение переменной определяется посредством использования синтаксиса языка Xpath.
Например, в формате JPEG2000 количество компонентов ≪comp-siz≫, содержащихся в сегменте SIZ маркера, определяется в параметре ≪Csiz≫, который помещается в начале сегмента маркера SIZ. В Приложении А элемент ≪Csiz≫ определяется как переменная. Ее значение определяется путем в строящемся древовидном представлении: в отношении этого выражение ≪SIZ/Csiz≫ указывает, что ≪Csiz≫ является порожденным элементом элемента ≪SIZ≫. Затем, во время определения комплексного типа ≪SIZ≫ вызывается эта переменная ≪Csiz≫ для определения количества появлений элемента ≪comp-siz≫.
<xsl:variable name="Csiz">
<xsl:value-of select="SIZ/Csiz"/>
</xsl:variable>
<xsd:element name="Comp_siz" minOccurs="$Csiz" maxOccurs="$Csiz">
Изобретение также предусматривает добавление новой групповой модели ≪bsd:conditionalChoice≫ и двух новых соединителей ≪xsl: if≫ и ≪xsl: choose≫. Это позволяет вводить условные ветвления в схемах и, таким образом, выражать условный выбор, который может существовать в формате, который необходимо описать. Необходимо отметить, что соединители ≪xsl: if≫ и ≪xsl: choose≫ определяются в языке XSLT. Согласно спецификациям языка XSLT соединители ≪xsl: if≫ и ≪xsl: choose≫ используют атрибут ≪test≫, который позволяет определять выбор функции результата теста. Соединитель ≪xsl: if≫ позволяет определять выбор как функция значения логической переменной. Соединитель ≪xsl: choose≫ позволяет определять выбор из множества вариантов.
В качестве примера, формат JPEG2000 обеспечивает то, что присутствие некоторых элементов или что тип данных зависит от значения параметра, который указывается в начале потока битов.
Это, в особенности, проявляется в элементе ≪Spcod≫, который содержится в элементе ≪COD≫. Элемент ≪Spcod≫ содержит элемент ≪PredinctSize≫ исключительно тогда, когда переменная ≪PredinctsUsed≫ имеет значение 1. Это ограничение выражается в схеме, в которой используется соединитель ≪xsl: if≫.
<xsd:element name="SPcod">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="nDecompLevels" type="xsd:unsignedByte"/>
<xsd:element name="codeBlockWidth" type="jp2:4p4b"/>
<xsd:element name="codeBlockHeight" type="jp2:4p4b"/>
<xsd:element name="codeBlockStyle">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="optSegMarkers" type="jp2:2p1b"/>
<xsd:element name="optErTerm" type="jp2:1b"/>
<xsd:element name="optVertStrCausal" type="jp2:1b"/>
<xsd:element name="optRegTerm" type="jp2:1b"/>
<xsd:element name="optResetMQ" type="jp2:1b"/>
<xsd:element name="optByPass" type="jp2:1b"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Transfonnation" type="xsd:unsignedByte"/>
<xsl:if test="$PrecinctsUsed=1">
<xsd:element name="PrecinctSize" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="PPy" type="jp2:4b"/>
<xsd:element name="PPx" type="jp2:4b"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsl:if>
</xsd:complexType>
</xsd:element>
В элементе ≪QCD≫ находится пример группы ≪bsd: conditionalChoice≫, который использует соединители ≪xsl: choose≫ для указания, что тип последующего элемента (Spqcd_1≫, Spqcd_2 или Spqcd_3) зависит от значения параметра ≪quantStyle≫, положение которого в обрабатываемом в настоящий момент древовидном представлении определяется путем ≪QCD/Sqcd/QuantStyle≫.
<bsd:conditionalChoice>
<xsl:choose>
<xsl:when test="QCD/Sqcd/quantStyle='0"'>
<xsd:element name="Spqcd_1" minOccurs="3*$nDecompLevels+1" maxOccurs="3*$nDecompLevels+1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="exponent" type="jp2:5b3p"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsl:when>
<xsl:when test="QCD/Sqcd/quantStyle='1'">
<xsd:element name="Spqcd_2" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="exponent" type="jp2:5b"/>
<xsd:element name="mantissa" type="jp2:11b"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsl:when>
<xsl:when test="QCD/Sqcd/quantStyle='2"'>
<xsd:element name="Spqcd_3"minOccurs="3*$nDecompLevels+1" maxOccurs="3*$nDecompLevels+1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="exponent" type="jp2:5b"/>
<xsd:element name="mantissa" type="jp2:11b"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsl:when>
</xsl:choose>
</bsd:conditionalChoice
Когда синтаксический анализатор считывает поток битов, он последовательно создает XML-дерево. Когда он встречает переменную в схеме, например в атрибуте ≪test≫ соединителя ≪if≫, он оценивает эту переменную посредством применения указанного пути.
Необходимо отметить, что язык XML позволяет определять свои собственные расширения. Первый вариант выполнения изобретения, таким образом, содержит добавление новых инструментов, предлагаемых изобретением в качестве расширений для существующего языка описания схемы XML. Другой вариант выполнения изобретения содержит полное переопределение нового языка, который применяет инструменты схемы XML и добавляет к нему новые инструменты, предлагаемые изобретением.
На фиг.3 показан пример системы передачи в соответствии с изобретением. Система передачи, показанная на фиг.3, содержит сервер SV и множество клиентов СТ. Сервер SV и клиенты СТ связаны со Всемирной паутиной Интернета. Сервер SV содержит средство MEM памяти и обрабатывающее средство PROC. Средство памяти содержит, в особенности, схему В2, первый поток В1 битов и компьютерную программу PG1 для осуществления способа синтаксического анализа согласно изобретению для получения первого документа В4, который представляет первый поток В1 битов и который представляет собой экземпляр схемы В2. Средство MEM памяти также предпочтительно содержит компьютерную программу PG2 для осуществления способа создания второго потока В'1 битов из документа В'4, представляющего его, и из схемы В2.
В качестве примера документ В'4 получается в результате применения преобразования к документу В4, причем это преобразование зависит от профиля клиента, который ранее запросил передачу потока битов.
Изобретение относится к синтаксическому анализу потока битов, содержащего данные, которые имеют структуру и содержимое, соответствующие некоторому формату, и предназначен для формирования древовидного представления упомянутого потока. Технический результат - повышение помехозащищенности. Предлагаемая схема, получаемая из XML, которая позволяет описывать формат кодирования в обобщенном виде. Такая схема используется для выполнения синтаксического анализа потока битов для получения документа, который представляет поток битов, который является экземпляром упомянутой схемы, или для формирования потока битов из документа, представляющего поток битов. 7 н.п. ф-лы, 3 ил.
упомянутая структура данных определяет один или более типов данных, которые могут иметь один или более аспектов, причем аспект соответствует ограничению, наложенному на набор значений типа данных, и содержит множество элементов, для которых она описывает имя, тип данных, расположение с перекрытием, порядок и предварительно определенное или случайное количество появлений, причем появление элемента является обязательным или факультативным,
упомянутая схема определяет один или более типов данных, которые соответствуют двоичным словам предварительно определенной длины или длин и которые имеют, по меньшей мере, аспект, относящийся к упомянутой длине,
отличающаяся тем, что
упомянутая структура данных определяет одну или более переменных, составляемых путем доступа к данным, причем она содержит одно или несколько условных ветвлений для описания различных структур или возможного содержимого как функции значения упомянутых одной или более переменных,
и факультативно имеет, по меньшей мере, один из следующих характеристических признаков:
упомянутая структура данных определяет тип данных, который соответствует двоичным сегментам неопределенной длины и который имеет, по меньшей мере, аспект, указывающий, должны ли двоичные сегменты быть преобразованы и введены в электронный документ или двоичные сегменты должны содержаться в двоичном файле и указатели на двоичный файл должны быть введены в электронный документ, и аспект, относящийся к флагу останова двоичного сегмента,
причем структура данных определяет аспект, относящийся к заполняющим битам, содержащимся в упомянутых двоичных словах предварительно определенной длины или длин.
A) считывания структуры (В2) данных по п.1,
B) поиска в упомянутом потоке битов данных, которые соответствуют элементам, содержащимся в упомянутой структуре данных,
C) формирования экземпляра упомянутой структуры данных, который содержит данные, найденные в упомянутом потоке битов, и который составляет упомянутое древовидное представление.
A) считывания упомянутого документа,
B) параллельного считывания структуры данных (В2) по п.1, которая обобщенным образом описывает упомянутый формат,
C) кодирования упомянутых данных как функции определяемого типа,
D) составления потока (В1) битов из кодированных данных.
LEE D | |||
et al: "Comparative Analysis of Six XML Schema Languages" INTERNET ARTICLE, 'Online! XP002183403 Retrieved from the Internet: URL:http://citeseer.nj.nec.com/lee00compa rative | |||
Перекатываемый затвор для водоемов | 1922 |
|
SU2001A1 |
et al: "Comparative Analysis of Six XML Schema Languages" ACM SIGMOD RECORD, vol.29 | |||
Переносная печь для варки пищи и отопления в окопах, походных помещениях и т.п. | 1921 |
|
SU3A1 |
Авторы
Даты
2007-02-20—Публикация
2002-02-08—Подача