Язык SCL создан на основе языка XML (см. [10]-[14]).
Определение его синтаксиса описано как W3C XML schema. В остальных разделах приведено определение соответствующей XML schema для языка SCL и объяснено ее использование в тексте с иллюстрированием подходящими (неполными) примерами использования объявленных специальных возможностей. Также предъявлены дополнительные письменные требования, ограничения и отношения к объектной модели, которая должна использоваться или проверяться путем считывания приложения или построения файла SCL. Полное нормативное определение XML schema приведено в приложении A. В приложении A также приведено формальное определение тех ограничений, которые легко формулируются в XML schema. Ограничения в отношении объектной модели, которые отсутствуют или не могут быть легко сформулированы в XML schema, дополнительно описаны в соответствующих разделах.
Чтобы сохранить синтаксис сжатым и расширяемым, по необходимости применяют типовые средства XML schema, тем самым вводится структура наследования элементов схемы. Структура наследования основных элементов языка SCL показана на рисунке 4 в виде схемы UML. Схемы UML могут также показывать отношения включения между элементами языка SCL. Следует иметь в виду, что эти отношения являются отношениями между элементами языка SCL, а не между объектами, представленными элементами и показанными на рисунке 2. Тем не менее была сделана попытка сохранить отношения элементов XML настолько близкими к отношениям объекта, насколько это возможно.
Рисунок 4 - Общее представление о схеме SCL в виде схемы UML
В схеме используются следующие соглашения в отношении присваивания имен:
- имена типов схемы начинаются со строчной буквы t (например, tSubstation);
- определения группы атрибутов начинаются с акронима ag (например, agAuthorization);
- имена атрибутов начинаются со строчной буквы (нижний регистр клавиатуры) (например, name);
- имена элементов начинаются с прописной буквы (верхний регистр клавиатуры) (например, Substation).
Почти все элементы языка SCL являются производными от базового типа tBaseElement (см., например, рисунок 4), что позволяет добавлять к элементу пояснительный текст Text и секции Private частный. Он также позволяет добавлять дополнительные подразряды элементов и атрибуты из других пространств имен (иных, чем целевое пространство имен ) - такие элементы, однако, должны сначала появиться среди всех подразрядов элементов. Это позволяет легко выполнить расширения модели, в том числе частные.
Имеется следующий уровень типов элементов, базирующихся на tBaseElement:
- tUnNaming добавляет дополнительный атрибут описания desc;
- tNaming добавляет дополнительный атрибут описания desc и обязательный атрибут имени name;
- tIDNaming добавляет атрибут описания desc и обязательный атрибут идентификатора id.
Во всех предыдущих типах desc является нормализованной строкой XML (XML normalizedString), то есть строкой, не содержащей управляющих символов возврата каретки, перевода строки или символа табуляции. Его значением по умолчанию является пустая строка. Атрибуты name и id относятся к типу tName, то есть являются также строками, не содержащими управляющих символов возврата каретки, перевода строки или символа табуляции, но они не могут оставаться пустыми.
Созданные отношения наследования для объектов энергосистемы показаны на схеме UML (см. рисунок 4). В связи с отношениями наследования атрибутов или групп атрибутов при определении элемента непосредственно определяются не все атрибуты. Тем не менее в последующих разделах также содержится описание наследуемых атрибутов (возможно, со ссылкой на предыдущее описание).
Для улучшения сегментации и многократного использования вся схема SCL разделена на несколько файлов, содержащих описания типов (таблица 1).
Таблица 1 - Файлы, входящие в определение XML schema языка SCL
Имя файла | Описание |
SCL_Enums.xsd | Перечислимые типы, применяемые в XML schema |
SCL_BaseSimpleTypes.xsd | Простые базовые типы, применяемые другими компонентами |
SCL_BaseTypes.xsd | Определения составных базовых типов, применяемых другими компонентами |
SCL_Substation.xsd | Определение синтаксиса в отношении подстанции |
SCL_Communication.xsd | Определение синтаксиса в отношении связи |
SCL_IED.xsd | Определение синтаксиса в отношении IED-устройства |
SCL_DataTypeTemplates.xsd | Определение синтаксиса в отношении шаблона типа данных |
SCL.xsd | Определение синтаксиса основной схемы SCL, которое определяет корневой элемент каждого файла SCL |
В дальнейших разделах, содержащих определение схемы, предполагается, что файл определения схемы SCL начинается следующим образом:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://www.iec.ch/61850/2003/SCL" | ||||
xmlns:scl="http://www.iec.ch/61850/2003/SCL" xmlns="http://www.iec.ch/61850/2003/SCL" | ||||
xmlns:xs="http://www.w3.org/2001/XMLShema" | ||||
elementFormDefault="qualified" attributeFormDefault="unqualified" finalDefault="extension" version="n.n"> |
Здесь n.n указывает версию языка SCL. Для настоящего стандарта это 1.0.