Добрый день, коллеги!
В процессе постижения SCL схемы возник вопрос, на который самостоятельно пока не получилось найти ответ. Вопрос заключается в следующем:
Разрешено ли использовать символы кириллицы и символ "пробел" в значениях атрибута name элементов секции <Substation>?
Я взял в качестве примера элемент <PowerTransformer>. Последовательно поднимаясь вверх к родительским элементам и перебирая complexType'ы, я дошёл до BaseSimpleType, где накладывается ограничение на значение атрибута name: оно не может быть меньше, чем один символ (смотри tName). Поднявшись ещё дальше, я выяснил, что набор допустимых символов для значений атрибута name - это normalizedString.
normalizedString является встроенным в XML набором символов.
Чтобы понять, что кроется за normalizedString я обратился нормативным документам консорциума W3C.
Информация, найденная в стандартах W3C (последние edition'ы XSD и XML 1.0):
1. normalizedString - строки, которые не содержат символов "перевод строки", табуляции и "возврат каретки" (О ПРОБЕЛЕ НИ СЛОВА!).
2. Базой для normalizedString является String.
Смотрим, что кроется за String. В последнем edition'е XML Schema Part 2 сказано, что String - это последовательность символов, которые представлены в production'е Char стандарта для XML 1.0.
Лезем смотреть, какие символы включает в себя Char (фото прикладываю).
Как видите, в Char входит оооочень большой набор символов Unicode. Причём в Char входят и символы кириллицы.
Есть какие то другие причины, по которым не желательно использовать пробел и символы кириллицы в значениях атрибута name элементов секции Substation?
Пока себе это объясняю лишь предположением, что может возникнуть конфликт, когда наш SCL файл будет обрабатываться каким-либо программным кодом. Потому что, как вы видите, согласно стандартам использование пробела и кириллицы - не запрещено.
Буду благодарен за любые комментарии, которые прояснят эту "задачку" или натолкнут на правильные мысли😉