ГОСТ Р ИСО/МЭК 26300—2010/Раздел 16

ГОСТ Р ИСО/МЭК 26300—2010 «Информационная технология. Формат Open Document для офисных приложений (OpenDocument) v1.0» — Раздел 16


16 Типы данных и определения в схеме

править

16.1 Типы данных

править

В данной спецификации используются следующие типы данных.

  • Определения типов данных W3C-схемы даны в [xmlschema-2] (ссылка на элементы <ref> также присваивает имя соответствующим типам данных)

— string (строка);

— date (дата);

— time (время);

— dateTime (датаВремя);

— duration (длительность);

— integer (целочисленный);

— nonNegativeInteger (целочисленный неотрицательный);

— positiveInteger (целочисленный положительный);

— double (численный с двойной точностью);

— anyURI (общепринятый идентификатор ресурса);

— base64Binary (последовательность бинарных октетов произвольной длины);

— ID (метка);

— IDREF (ссылка на метку).

Определения типов данных Relax-NG для W3C-схемы:

<define name="string">
    <data type="string"/>
</define>
<define name="date">
    <data type="date"/>
</define>
<define name="time">
    <data type="time"/>
</define>
<define name="dateTime">
    <data type="dateTime"/>
</define>
<define name="duration">
    <data type="duration"/>
</define>
<define name="integer">
    <data type="integer"/>
</define>
<define name="nonNegativeInteger">
    <data type="nonNegativeInteger"/>
</define>
<define name="positiveInteger">
    <data type="positiveInteger"/>
</define>
<define name="double">
    <data type="double"/>
</define>
<define name="anyURI">
    <data type="anyURI"/>
</define>
<define name="base64Binary">
    <data type="base64Binary"/>
</define>
<define name="ID">
    <data type="ID"/>
</define>
<define name="IDREF">
    <data type="IDREF"/>
</define>
  • Типы данных пользователя (обычно это конкретизация типов данных W3C-схемы):

— boolean (логический) — может принимать только одно из двух значений — true (истина) или false (ложь);

— dateOrDateTime (дата или датаВремя) — значение dateOrDateTime по существу такое же, как в схеме [xmlschema-2], это значение даты и времени с необязательным компонентом времени, другими словами, оно может содержать только дату или дату и время;

— timeOrDateTime (время или датаВремя) — значение timeOrDateTime по существу такое же, как в схеме [xmlschema-2], это значение даты и времени с необязательным компонентом даты, другими словами, оно может содержать только время или дату и время;

— language (язык) — то же самое, что тип данных language в схеме W3C, за исключением того, что значения описываются в [RFC3066] вместо [RFC1766];

— countryCode (код страны) — значение countryCode — код страны в соответствии с [RFC3066], как определено в [XSL];

— languageCode (код языка) — значение languageCode — код языка в соответствии с [RFC3066], как определено в [XSL];

— character (символьный) — значение character — строка, состоящая только из одного символа;

— length (длина) — физическая длина (положительная или отрицательная), состоящая из величины и единицы измерения, в соответствии с § 5.9.11 в [XSL], корректное значение длины может быть «2.54 cm» или «1 inch», число без единицы измерения — некорректное значение длины, например, «3.2», поддержка значений в пикселях необязательна;

— nonNegativeLength (неотрицательная длина) — похож на тип данных length, за исключением того, что значение должно быть нулевым или положительным;

— positiveLength (положительная длина) — похож на тип данных length, за исключением того, что значение должно быть положительным;

— percent (процентный) — значение в процентах (положительное или отрицательное) в соответствие с § 5.9.11 в [XSL], например, «40 %»;

— relativeLength (относительная длина) — положительное целое число, следующее за символом « * »;

— coordinate (координатный) — похож на тип данных length, за исключением того, что физическая длина обозначает конкретную точку;

— distance (расстояние) — похож на тип данных length, за исключением того, что физическая длина указывает расстояние между точками;

— color (цвет) — RGB-цвет в соответствие с § 5.9.11 в [XSL], т. е. RGB-цвет в "#rrggbb" нотации, где rr, gg и bb — шестнадцатеричные цифры;

— styleName (имя стиля) — NCName, как определено в [xmlschema-2], — это имя стиля;

— StyleNameRef (ссылка на имя стиля) — NCName, как определено в [xmlschema-2], — ссылка на имя стиля или пустое значение;

— StyleNames (имена стилей) — список, состоящий из NCNames, разделенный пробельными символами, как определено в [xmlschema-2] — имена стилей;

— VariableName (имя переменной) — строка, определяющая имя переменной;

— formula (формула) — строка, содержащая формулу, формулы не имеют встроенного синтаксиса, но должны начинаться с префикса пространства имен, который конкретизирует синтаксис, используемый в пределах формулы;

— valueType (тип значения) — список поддерживаемых значений для определенных общих значений типов, таких как string или date;

— targetFrameName (имя целевого фрейма) — имя целевого фрейма в соответствии с § 6.16 [HTML4];

— points (пункты) — последовательность пунктов, пункты — две целых координаты, разделенные запятой, пункты разделяются пробельным символом;

— pathData (путь к данным) — путь к данным, как описано в § 8 из [SVG];

— vector3D (трехмерный вектор) — вектор из трех элементов с плавающей точкой, представленный координатами x,y,z, заключенными в круглые скобки, записанными в порядке x, y, z и разделенными пробельными символами, если значение представлено как нормальное, то оно должно быть нормализовано.

Пример —

Направленный вектор с координатами x=0.5, y=0 и z=1 выглядит как «(0.5 0 1)».

— namespacedToken (маркер пространства имен) — маркер пространства имен — это идентификатор маркера, который использует механизм пространства имен XML для целей компоновки.

Пример —

Предопределенные типы диаграмм используют пространство имен диаграмм urn:oasis:names:tc:opendocument:xmlns:chart:1.0. Допускается описание пространства имен xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0", столбиковая диаграмма была бы идентифицирована как chart:bar. Определения типов данных Relax-NG для типов данных пользователя:

<define name="boolean">
    <choice>
        <value>true</value>
        <value>false</value>
    </choice>
</define>
<define name="dateOrDateTime">
    <choice>
        <data type="date"/>
        <data type="dateTime"/>
    </choice>
</define>
<define name="timeOrDateTime">
    <choice>
        <data type="time"/>
        <data type="dateTime"/>
    </choice>
</define>
<define name="language">
    <data type="token">
        <param name="pattern">[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*</param>
    </data>
</define>
<define name="countryCode">
    <data type="token">
        <param name="pattern">[A-Za-z0-9]{1,8}</param>
    </data>
</define>
<define name="languageCode">
    <data type="token">
        <param name="pattern">[A-Za-z]{1,8}</param>
    </data>
</define>
<define name="character">
    <data type="string">
        <param name="length">1</param>
    </data>
</define>
<define name="length">
    <data type="string">
        <param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|
(pt)|(pc)|(px))</param>
    </data>
</define>
<define name="nonNegativeLength">
    <data type="string">
        <param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|
(pc)|(px))</param>
    </data>
</define>
<define name="positiveLength">
    <data type="string">
        <!-- A zero value is not allowed here -->
        <param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|
(pc)|(px))</param>
    </data>
</define>
<define name="percent">
    <data type="string">
        <param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%</param>
    </data>
</define>
<define name="relativeLength">
    <data type="string">
        <param name="pattern">[0-9]+\*</param>
    </data>
</define>
<define name="coordinate">
    <ref name="length"/>
</define>
<define name="distance">
    <ref name="length"/>
</define>
<define name="color">
    <data type="string">
        <param name="pattern">#[0-9a-fA-F]{6}</param>
    </data>
</define>
<define name="styleName">
    <data type="NCName"/>
</define>
<define name="styleNameRef">
    <choice>
        <data type="NCName"/>
        <empty/>
    </choice>
</define>
<define name="styleNameRefs">
    <list>
        <zeroOrMore>
            <data type="NCName"/>
        </zeroOrMore>
    </list>
</define>
<define name="variableName">
    <data type="string"/>
</define>
<define name="formula">
    <!-- A formula should start with a namespace prefix, -->
    <!-- but has no restrictions-->
    <data type="string"/>
</define>

<define name="targetFrameName">
    <choice>
        <value>_self</value>
        <value>_blank</value>
        <value>_parent</value>
        <value>_top</value>
        <ref name="string"/>
    </choice>
</define>

<define name="valueType">
    <choice>
        <value>float</value>
        <value>time</value>
        <value>date</value>
        <value>percentage</value>
        <value>currency</value>
        <value>boolean</value>
        <value>string</value>
    </choice>
</define>

<define name="points">
    <data type="string">
        <param name="pattern">-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*</param>
    </data>
</define>
<define name="pathData">
    <data type="string"/>
</define>

<define name="vector3D">
    <data type="string">
        <param name="pattern">\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+
(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)</param>
    </data>
</define>

<define name="namespacedToken">
    <data type="string">
        <param name="pattern">[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+</param>
    </data>
</define>

16.2 Другие определения

править

Для того чтобы предусмотреть расширяемость формата, в некоторых случаях возможно включение содержимого пользователя. Следующие определения позволяют добавление произвольных свойств или элементов (с произвольными моделями содержимого).

<define name="anyAttListOrElements">
    <zeroOrMore>
        <attribute>
            <anyName/>
            <text/>
        </attribute>
    </zeroOrMore>
    <ref name="anyElements"/>
</define>
<define name="anyElements">
    <zeroOrMore>
        <element>
            <anyName/>
            <mixed>
                <ref name="anyAttListOrElements"/>
            </mixed>
        </element>
    </zeroOrMore>
</define>

16.3 Суффикс схемы Relax-NG

править

Суффикс для нормативной схемы Relax-NG:

</grammar>


Это произведение не охраняется авторским правом.
В соответствии со статьёй 1259 Гражданского кодекса Российской Федерации не являются объектами авторских прав официальные документы государственных органов и органов местного самоуправления муниципальных образований, в том числе законы, другие нормативные акты, судебные решения, иные материалы законодательного, административного и судебного характера, официальные документы международных организаций, а также их официальные переводы; государственные символы и знаки (флаги, гербы, ордена, денежные знаки и тому подобное), а также символы и знаки муниципальных образований; произведения народного творчества (фольклор), не имеющие конкретных авторов; сообщения о событиях и фактах, имеющие исключительно информационный характер (сообщения о новостях дня, программы телепередач, расписания движения транспортных средств и тому подобное).
Россия