Статус документа
Статус документа

ГОСТ Р МЭК 61850-6-2009 Сети и системы связи на подстанциях. Часть 6. Язык описания конфигурации для связи между интеллектуальными электронными устройствами на электрических подстанциях

Приложение Е
(справочное)

Определение XМL schema вариантов языка SCL

Следующая часть schema, использующая элементы из нормативного определения SCL schema, сама по себе, однако, не является нормативной и формально определяет ограничения для различных вариантов языка SCL, которые представлены в разделе 7:

CID: описание сконфигурированного IED-устройства;

ICD: описание возможностей IED-устройства;

SCD: описание конфигурации подстанции;

SSD: описание системной спецификации; здесь приведена "чистая" версия без IED-устройств и версия с установкой некоторых уже известных IED-устройств.

Следует обратить внимание, что дополнительно к сформулированным здесь ограничениям действуют некоторые ограничения присваивания имен, описанные в разделе 7, которые не могут быть выражены с помощью XML schema.

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema targetNamespace="http://www.iec.ch/61850/2003/SCL"

xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.iec.ch/61850/2003/SCL"

xmlns:scl="http://www.iec.ch/61850/2003/SCL" elementFormDefault="qualified" attributeFormDe-

fault="unqualified" finalDefault="extension" version="1.0">

<xs:annotation>

<xs:documentation xml:lang="en">

COPYRIGHT IEC, 2003. Version 1.0. Release 2003/08/20.

This schema is for infomational purposes only, and is not normative!

Notes:

- Identity constraints are in comments, in order to avoid any clashes with the existing ones.

- The elements are defined as abstract to prevent their usage in practice.

</xs:documentation>

</xs:annotation>

<!--=========================================


Включая общий случай:

========================================= -->

<xs:include schemaLocation="SCL.xsd"/>

<!-- =========================================


Вариант описания возможностей IED-устройства (ICD)

========================================= -->

<xs:element name="SCL ICD" abstract="true">

<xs:annotation>

<xs:documentation xml:lang="en">SCL for an IED Capability Description

(ICD)</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:complexContent>

<xs:extension base="tBaseElement">

<xs:sequence>

<xs:element name="Header" type="tHeader">

<!--<xs:unique name="uniqueHitem">

<xs:selector xpath="./scl:History/scl:Hitem"/>

<xs:field xpath="@version"/>

<xs:field xpath="@revision"/>

</xs:unique>-->

</xs:element>

<xs:element name="Substation" type="tSubstationTemplate"

minOccurs="0">

<!--<xs:unique name="uniqueVoltageLevellnSubstation">

<xs:selector xpath="./scl:VoltageLevel"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:unique name="uniquePowerTranformerlnSubstation">

<xs:selector xpath="./scl:PowerTransformer"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:unique name="uniqueFunctionlnSubstation">

<xs:selector xpath="./scl:Function"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:key name="ConnectivityNodeKey">

<xs:selector xpath=".//scl:ConnectivityNode"/>

<xs:field xpath="@pathName"/>

</xs:key>

<xs:keyref name="ref2ConnectivityNode" refer="ConnectivityNodeKey">

<xs:selector xpath=".//scl:Terminal"/>

<xs:field xpath="@connectivityNode"/>

</xs:keyref>

<xs:unique name="uniqueLNode">

<xs:selector xpath=".//scl:LNode"/>

<xs:field xpath="@lnlnst"/>

<xs:field xpath="@lnClass"/>

<xs:field xpath="@iedName"/>

<xs:field xpath="@ldlnst"/>

<xs:field xpath="@prefix"/>

</xs:unique>-->

</xs:element>

<xs:element ref="Communication" minOccurs="0"/>

<xs:element name="IED" type="tlEDTemplate">

<!--<xs:unique name="uniqueAccessPointlnlED">

<xs:selector xpath="./scl:AccessPoint"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:unique name="uniqueLDevicelnlED">

<xs:selector xpath=".//scl:LDevice"/>

<xs:field xpath="@inst"/>

</xs:unique>

<xs:unique name="uniqueGSEControllnlED">

<xs:selector xpath=".//scl:GSEControl"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:unique name="uniqueSMVControllnlED">

<xs:selector xpath=".//scl:SampledValueControl"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:key name="LDevicelnlEDKey">

<xs:selector xpath="./scl:AccessPoint/scl:Server/scl:LDevice"/>

<xs:field xpath="@inst"/>

</xs:key>

<xs:keyref name="ref2LDevicelnlED" refer="LDevicelnlEDKey">

<xs:selector xpath="./scl:AccessPoint/scl:Server/scl:LDevice/scl:LN0/scl:LogControl"/>

<xs:field xpath="@logName"/>

</xs:keyref>-->

</xs:element>

<xs:element ref="DataTypeTemplates"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

<!--<xs:key name="LNodeTypeKey">

<xs:selector xpath="./scl:DataTypeTemplates/scl:LNodeType"/>

<xs:field xpath="@id"/>

<xs:field xpath="@lnClass"/>

</xs:key>

<xs:keyref name="ref2LNodeTypeDomain1" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:LN"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>

<xs:keyref name="ref2LNodeTypeDomain2" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:Server/scl:LDevice/scl:LN"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>

<xs:keyref name="ref2LNodeTypeLLN0" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:Server/scl:LDevice/scl:LN0"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>-->

</xs:element>

<!-- =========================================

Вариант документа по спецификации "чистой" системы (SSD)

========================================= -->

<xs:element name="SCL_pureSSD" abstract="true">

<xs:annotation>

<xs:documentation xml:lang="en">SCL for a "Pure" System Specification Document

(SSD)</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:complexContent>

<xs:extension base="tBaseElement">

<xs:sequence>

<xs:element name="Header" type="tHeader">

<!--<xs:unique name="uniqueHitem">

<xs:selector xpath="./scl:History/scl:Hitem"/>

<xs:field xpath="@version"/>

<xs:field xpath="@revision"/>

</xs:unique>-->

</xs:element>

<xs:element ref="Substation" maxOccurs="unbounded"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

<!--<xs:unique name="uniqueSubstation">

<xs:selector xpath="./scl:Substation"/>

<xs:field xpath="@name"/>

</xs:unique>-->

</xs:element>

<!-- =========================================

Вариант документа по системной спецификации (SSD)

========================================= -->

<xs:element name="SCL_SSD" abstract="true">

<xs:annotation>

<xs:documentation xml:lang="en">SCL for a System Specification Document

(SSD)</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:complexContent>

<xs:extension base="tBaseElement">

<xs:sequence>

<xs:element name="Header" type="tHeader">

<!--<xs:unique name="uniqueHitem">

<xs:selector xpath="./scl:History/scl:Hitem"/>

<xs:field xpath="@version"/>

<xs:field xpath="@revision"/>

</xs:unique>-->

</xs:element>

<xs:element ref="Substation" maxOccurs="unbounded"/>

<xs:element ref="Communication" minOccurs="0"/>

<xs:element ref="IED" minOccurs="0" maxOccurs="unbounded"/>

<xs:element ref="DataTypeTemplates" minOccurs="0"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

<!--<xs:unique name="uniqueSubstation">

<xs:selector xpath="./scl:Substation"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:key name="IEDKey">

<xs:selector xpath="./scl:IED"/>

<xs:field xpath="@name"/>

</xs:key>

<xs:key name="LNodeTypeKey">

<xs:selector xpath="./scl:DataTypeTemplates/scl:LNodeType"/>

<xs:field xpath="@id"/>

<xs:field xpath="@lnClass"/>

</xs:key>

<xs:keyref name="ref2LNodeTypeDomain1" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:LN"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>

<xs:keyref name="ref2LNodeTypeDomain2" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:Server/scl:LDevice/scl:LN"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>

<xs:keyref name="ref2LNodeTypeLLN0" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:Server/scl:LDevice/scl:LN0"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>-->

</xs:element>

<!-- =========================================

Вариант описания конфигурации подстанции (SCD)

========================================= -->

<xs:element name="SCL_SCD" abstract="true">

<xs:annotation>

<xs:documentation xml:lang="en">SCL for a Substation Configuration Description

(SCD)</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:complexContent>

<xs:extension base="tBaseElement">

<xs:sequence>

<xs:element name="Headef type="tHeader">

<!--<xs:unique name="uniqueHitem">

<xs:selector xpath="./scl:History/scl:Hitem"/>

<xs:field xpath="@version"/>

<xs:field xpath="@revision"/>

</xs:unique>-->

</xs:element>

<xs:element ref="Substation" maxOccurs="unbounded"/>

<xs:element ref="Communication"/>

<xs:element ref="IED" maxOccurs="unbounded"/>

<xs:element ref="DataTypeTemplates"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

<!--<xs:unique name="uniqueSubstation">

<xs:selector xpath="./scl:Substation"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:key name="IEDKey">

<xs:selector xpath="./scl:IED"/>

<xs:field xpath="@name"/>

</xs:key>

<xs:key name="LNodeTypeKey">

<xs:selector xpath="./scl:DataTypeTemplates/scl:LNodeType"/>

<xs:field xpath="@id"/>

<xs:field xpath="@lnClass"/>

</xs:key>

<xs:keyref name="ref2LNodeTypeDomain1" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:LN"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>

<xs:keyref name="ref2LNodeTypeDomain2" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:Server/scl:LDevice/scl:LN"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>

<xs:keyref name="ref2LNodeTypeLLN0" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:Server/scl:LDevice/scl:LN0"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>-->

</xs:element>

<!-- =========================================

Вариант описания сконфигурированного IED-устройства (CID)

========================================= -->

<xs:element name="SCL_CID" abstract="true">

<xs:annotation>

<xs:documentation xml:lang="en">SCL for a Configured IED Description

(CID)</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:complexContent>

<xs:extension base="tBaseElement">

<xs:sequence>

<xs:element name="Headef type="tHeader">

<!--<xs:unique name="uniqueHitem">

<xs:selector xpath="./scl:History/scl:Hitem"/>

<xs:field xpath="@version"/>

<xs:field xpath="@revision"/>

</xs:unique>-->

</xs:element>

<xs:element ref="Substation" minOccurs="0"

maxOccurs="unbounded"/>

<xs:element ref="Communication"/>

<xs:element ref="IED" maxOccurs="unbounded"/>

<xs:element ref="DataTypeTemplates"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

<!--<xs:key name="LNodeTypeKey">

<xs:selector xpath="./scl:DataTypeTemplates/scl:LNodeType"/>

<xs:field xpath="@id"/>

<xs:field xpath="@lnClass"/>

</xs:key>

<xs:keyref name="ref2LNodeTypeDomain1" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:LN"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>

<xs:keyref name="ref2LNodeTypeDomain2" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:Server/scl:LDevice/scl:LN"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>

<xs:keyref name="ref2LNodeTypeLLN0" refer="LNodeTypeKey">

<xs:selector xpath="./scl:IED/scl:AccessPoint/scl:Server/scl:LDevice/scl:LN0"/>

<xs:field xpath="@lnType"/>

<xs:field xpath="@lnClass"/>

</xs:keyref>-->

</xs:element>

<!-- =========================================

Ограничения различного типа

========================================= -->

<xs:complexType name="tSubstationTemplate">

<xs:complexContent>

<xs:restriction base="tSubstation">

<xs:sequence>

<xs:sequence>

<xs:any namespace="##other" minOccurs="0"

maxOccurs="unbounded"/>

<xs:element name="Text" type="tText" minOccurs="0"/>

<xs:element name="Private" type="tPrivate" minOccurs="0"

maxOccurs="unbounded"/>

</xs:sequence>

<xs:sequence>

<xs:element name="LNode" type="tLNode" minOccurs="0"

maxOccurs="unbounded"/>

</xs:sequence>

<xs:sequence>

<xs:element name="PowerTransformer" type="tPowerTransformer"

minOccurs="0" maxOccurs="unbounded">

<!--<xs:unique name="uniqueWindinglnPowerTransformer">

<xs:selector xpath="./scl:TransformerWinding"/>

<xs:field xpath="@name"/>

</xs:unique>-->

</xs:element>

</xs:sequence>

<xs:sequence>

<xs:element name="VoltageLevel" type="tVoltageLevel"

maxOccurs="unbounded">

<!--<xs:unique name="uniqueBaylnVoltageLevel">

<xs:selector xpath="./scl:Bay"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:unique name="uniquePowerTransformerlnVoltageLevel">

<xs:selector xpath="./scl:PowerTransformer"/>

<xs:field xpath="@name"/>

</xs:unique>

</xs:element>

<xs:element name="Function" type="tFunction" minOccurs="0" maxOccurs="unbounded">

<xs:unique name="uniqueSubFunctionlnFunction">

<xs:selector xpath="./scl:SubFunction"/>

<xs:field xpath="@name"/>

</xs:unique>

<xs:unique name="uniqueGeneralEquipmentlnFunction">

<xs:selector xpath="./scl:GeneralEquipment"/>

<xs:field xpath="@name"/>

</xs:unique>-->

</xs:element>

</xs:sequence>

</xs:sequence>

<xs:attribute name="name" type="tName" use="required" fixed="TEMPLATE"/>

</xs:restriction>

</xs:complexContent>

</xs:complexType>
<xs:complexType name="tlEDTemplate">

<xs:complexContent>

<xs:restriction base="tlED">

<xs:sequence>

<xs:sequence>

<xs:any namespace="##other" minOccurs="0"

maxOccurs="unbounded"/>

<xs:element name="Text" type="tText" minOccurs="0"/>
<xs:element name="Private" type="tPrivate" minOccurs="0"

maxOccurs="unbounded"/>

</xs:sequence>
<xs:sequence>

<xs:element name="Services" type="tServices" minOccurs="0"/>

<xs:element name="AccessPoint" type="tAccessPoint"

maxOccurs="unbounded">

<!--<xs:unique name="uniqueLNInAccessPoint">

<xs:annotation>

<xs:documentation xml:lang="en">Only for those LN that are direct children of this AccessPoint.</xs:documentation>

</xs:annotation>

<xs:selector xpath=".//scl:LN"/>

<xs:field xpath="@inst"/>

<xs:field xpath="@lnClass"/>

<xs:field xpath="@prefix"/>

</xs:unique>-->

</xs:element>

</xs:sequence>

</xs:sequence>

<xs:attribute name="name" type="tName" use="required" fixed="TEMPLATE"/>

</xs:restriction>

</xs:complexContent>

</xs:complexType>

</xs:schema>