Частичное XML содержание и детерминированные кодирования
Б.1 Частичное XML содержание
Примечание - Это приложение описывает действия, когда используется MODIFIED-ENCODINGS.
Б.1.1 В следующих подпунктах описывается создание частичного содержания XML элемента. Частичное содержание XML элемента производится в качестве части кодировок, и Б.2 определяет ограничения на частичное содержание XML элемента, которые необходимы для удовлетворения требований 9.2.11. Если спецификация АСН.1 с кодировкой XER инструкций не нарушает эти ограничения, она является допустимой спецификацией и ее допустимость легко проверить. В случае нарушения ограничений спецификация может не нарушать нормативных требований 9.2.11, но проверить это трудно.
Примечание - Ограничения направлены на обеспечение того, чтобы декодер мог легко и однозначно восстановить абстрактные значения, которые были использованы кодером при кодировании.
Б.1.2 Частичное содержание XML элемента состоит из комбинации отдельных XML элементов, предоставляемых [ELEMENT] SEQUENCE, SET, SEQUENCE OF, SET OF или CHOICE, и другими частичными содержаниями XML элемента, предоставляемых [UNTAGGED] SEQUENCE, SET, SEQUENCE OF, SET OF или CHOICE.
Примечание - Граница между частичным содержанием XML элемента в рамках более крупного частичного содержания XML элемента не видна в той кодировке, но может быть определена из схемы АСН.1 и ограничений на имена элементов.
Б.1.3 Возможные варианты частичного содержания XML элемента:
а) единичный элемент XML;
б) группа конкатенации, состоящая из упорядоченной конкатенации нуля, одного или более частичных содержаний XML элементов, в которой некоторое частичное содержание XML элемента может отсутствовать в момент кодировки (представляя отсутствие опционального абстрактного значения);
Примечание - Кодирование типа [UNTAGGED] SEQUENCE или SET будет в общем случае продуцировать группу конкатенации.
в) группа повторений, состоящая из повторения (неограниченного или ограниченного) содержания частичного XML элемента (называемого повторяемый компонент) создаваемого из компонентов SEQUENCE OF или SET OF;
Примечание - Кодирование типа [UNTAGGED] SEQUENCE OF или SET OF будет в целом производить группу повторений.
г) группа альтернатив, включающая одно содержание частичного XML элемента, выбранного из множества альтернативных содержаний частичного XML элемента (из которых точно один присутствует в кодировании).
Примечание - Кодирование типа CHOICE производит альтернативы группы. Каждый альтернативный тип CHOICE производит один из альтернативных содержаний частичного XML элемента для этого типа.
Б.2 Рекомендуемые ограничения на кодирования, производящие содержание частичного XML элемента
Б.2.1 Только для целей настоящего пункта любые группы повторения рассматриваются как если бы они были факультативными, т.е. могли бы иметь нулевые повторения.
Примечание - Это ограничение не является строго необходимым, если существуют ограничения, которые требуют, по крайней мере, одного повторения соответствующего типа АСН.1.
Б.2.2 Только для целей настоящего пункта требование различия имен элементов можно интерпретировать следующим образом:
а) все сравнения сделаны после применения каких-либо окончательных команд кодирования NAME и NAMESPACE по типу, который генерирует имя;
б) имена уточненного пространства имен отличны от неквалифицированных имен;
в) имена уточненного пространства имен отличаются, если и только если отличаются их unprefixed имена, имена пространства имен или оба варианта одновременно.
Б.2.3 Для любого получающегося содержания частичного XML элемента есть возможные разночтения (и, следовательно, возможность нарушения 9.2.11) если условия, указанные в настоящем подпункте, не выполняются для всех возможных вариантов альтернатив в группе альтернатив, для всех возможных осуществлений выборочности в группе конкатенаций, для всех возможных повторений в группе повторений, и для всех возможных упорядочений кодировки компонентов набора.
Примечание - При чтении и реализации следующих пунктов текст уточнения "для всех возможных" очень важен. Создатели инструментов, определяющих, что является однозначной спецификацией, а что нет, придется анализировать все возможные комбинации вариантов, выборочности, повторений и порядков.
Б.2.4 Определение требования: не должно быть двух соседних содержаний частичных XML элементов с одинаковым именем элемента для первого элемента содержания второго частичного XML элемента и содержание последнего элемент содержание первого частичного XML элемента, если первый частичный XML элемента не требует саморазграничения.
Пример 1 - Содержание частичного XML элемента созданного [UNTAGGED] SEQUENCE, саморазграничено, если оно не заканчивается элементом OPTIONAL.
Пример 2 - Содержание частичного XML элемента созданного [UNTAGGED] SEQUENCE OF, саморазграничено, если оно имеет фиксированное число итераций, которые саморазграниченными. Это означает, в частности, что SEQUENCE OF [UNTAGGED] SEQUENCE OF INTEGER является неоднозначным и нарушает 9.2.11, если число повторений во второй SEQUENCE OF не будет фиксированным.
Пример 3 - Содержание частичного XML элемента, созданного [UNTAGGED] SET, никогда не саморазграничивается, если оно имеет любые дополнительные элементы.