123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:scl="http://www.iec.ch/61850/2003/SCL" xmlns="http://www.iec.ch/61850/2003/SCL" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.iec.ch/61850/2003/SCL" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.7">
- <xs:annotation>
- <xs:documentation xml:lang="en">
- Copyright (c) 2013 IEC. All rights reserved.
- Version 1.7. Release 2014/03/11.
- </xs:documentation>
- </xs:annotation>
- <xs:include schemaLocation="SCL_BaseTypes.xsd"/>
- <xs:attributeGroup name="agVirtual">
- <xs:attribute name="virtual" type="xs:boolean" use="optional" default="false"/>
- </xs:attributeGroup>
- <xs:complexType name="tLNodeContainer" abstract="true">
- <xs:complexContent>
- <xs:extension base="tNaming">
- <xs:sequence>
- <xs:element name="LNode" type="tLNode" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tPowerSystemResource" abstract="true">
- <xs:complexContent>
- <xs:extension base="tLNodeContainer"/>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tEquipmentContainer" abstract="true">
- <xs:complexContent>
- <xs:extension base="tPowerSystemResource">
- <xs:sequence>
- <xs:element name="PowerTransformer" type="tPowerTransformer" minOccurs="0" maxOccurs="unbounded">
- <xs:unique name="uniqueWindingInPowerTransformer">
- <xs:selector xpath="./scl:TransformerWinding"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- </xs:element>
- <xs:element name="GeneralEquipment" type="tGeneralEquipment" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tEquipment" abstract="true">
- <xs:complexContent>
- <xs:extension base="tPowerSystemResource">
- <xs:attributeGroup ref="agVirtual"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tAbstractConductingEquipment" abstract="true">
- <xs:complexContent>
- <xs:extension base="tEquipment">
- <xs:sequence>
- <xs:element name="Terminal" type="tTerminal" minOccurs="0" maxOccurs="2"/>
- <xs:element name="SubEquipment" type="tSubEquipment" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tConductingEquipment">
- <xs:complexContent>
- <xs:extension base="tAbstractConductingEquipment">
- <xs:attribute name="type" type="tCommonConductingEquipmentEnum" use="required"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tSubEquipment">
- <xs:complexContent>
- <xs:extension base="tPowerSystemResource">
- <xs:attribute name="phase" type="tPhaseEnum" use="optional" default="none"/>
- <xs:attributeGroup ref="agVirtual"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tPowerTransformer">
- <xs:complexContent>
- <xs:extension base="tEquipment">
- <xs:sequence>
- <xs:element name="TransformerWinding" type="tTransformerWinding" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="type" type="tPowerTransformerEnum" use="required" fixed="PTR"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tTransformerWinding">
- <xs:complexContent>
- <xs:extension base="tAbstractConductingEquipment">
- <xs:sequence>
- <xs:element name="TapChanger" type="tTapChanger" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="type" type="tTransformerWindingEnum" use="required" fixed="PTW"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tTapChanger">
- <xs:complexContent>
- <xs:extension base="tPowerSystemResource">
- <xs:attribute name="type" type="xs:Name" use="required" fixed="LTC"/>
- <xs:attributeGroup ref="agVirtual"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tGeneralEquipment">
- <xs:complexContent>
- <xs:extension base="tEquipment">
- <xs:attribute name="type" type="tGeneralEquipmentEnum" use="required"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tSubstation">
- <xs:complexContent>
- <xs:extension base="tEquipmentContainer">
- <xs:sequence>
- <xs:element name="VoltageLevel" type="tVoltageLevel" maxOccurs="unbounded">
- <xs:unique name="uniqueBayInVoltageLevel">
- <xs:selector xpath="./scl:Bay"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniquePowerTransformerInVoltageLevel">
- <xs:selector xpath="./scl:PowerTransformer"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniqueGeneralEquipmentInVoltageLevel">
- <xs:selector xpath="./scl:GeneralEquipment"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniqueChildNameInVoltageLevel">
- <xs:selector xpath="./*"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- </xs:element>
- <xs:element name="Function" type="tFunction" minOccurs="0" maxOccurs="unbounded">
- <xs:unique name="uniqueSubFunctionInFunction">
- <xs:selector xpath="./scl:SubFunction"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniqueGeneralEquipmentInFunction">
- <xs:selector xpath="./scl:GeneralEquipment"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- </xs:element>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tVoltageLevel">
- <xs:complexContent>
- <xs:extension base="tEquipmentContainer">
- <xs:sequence>
- <xs:element name="Voltage" type="tVoltage" minOccurs="0"/>
- <xs:element name="Bay" type="tBay" maxOccurs="unbounded">
- <xs:unique name="uniquePowerTransformerInBay">
- <xs:selector xpath="./scl:PowerTransformer"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniqueConductingEquipmentInBay">
- <xs:selector xpath="./scl:ConductingEquipment"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniqueGeneralEquipmentInBay">
- <xs:selector xpath="./scl:GeneralEquipment"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniqueChildNameInBay">
- <xs:selector xpath="./*"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- </xs:element>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tBay">
- <xs:complexContent>
- <xs:extension base="tEquipmentContainer">
- <xs:sequence>
- <xs:element name="ConductingEquipment" type="tConductingEquipment" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="ConnectivityNode" type="tConnectivityNode" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tLNode">
- <xs:complexContent>
- <xs:extension base="tUnNaming">
- <xs:attribute name="lnInst" type="tAnyName" use="optional" default=""/>
- <xs:attribute name="lnClass" type="tLNClassEnum" use="required"/>
- <xs:attribute name="iedName" type="tName" use="optional" default="None"/>
- <xs:attribute name="ldInst" type="tAnyName" use="optional" default=""/>
- <xs:attribute name="prefix" type="tAnyName" use="optional" default=""/>
- <xs:attribute name="lnType" type="tName" use="optional"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tFunction">
- <xs:complexContent>
- <xs:extension base="tPowerSystemResource">
- <xs:sequence>
- <xs:element name="SubFunction" type="tSubFunction" minOccurs="0" maxOccurs="unbounded">
- <xs:unique name="uniqueGeneralEquipmentInSubFunction">
- <xs:selector xpath="./scl:GeneralEquipment"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- </xs:element>
- <xs:element name="GeneralEquipment" type="tGeneralEquipment" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tSubFunction">
- <xs:complexContent>
- <xs:extension base="tPowerSystemResource">
- <xs:sequence>
- <xs:element name="GeneralEquipment" type="tGeneralEquipment" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tConnectivityNode">
- <xs:complexContent>
- <xs:extension base="tLNodeContainer">
- <xs:attribute name="pathName" type="tRef" use="required"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="tTerminal">
- <xs:complexContent>
- <xs:extension base="tUnNaming">
- <xs:attribute name="name" type="tAnyName" use="optional" default=""/>
- <xs:attribute name="connectivityNode" type="tRef" use="required"/>
- <xs:attribute name="substationName" type="tName" use="required"/>
- <xs:attribute name="voltageLevelName" type="tName" use="required"/>
- <xs:attribute name="bayName" type="tName" use="required"/>
- <xs:attribute name="cNodeName" type="tName" use="required"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:element name="Substation" type="tSubstation">
- <xs:unique name="uniqueVoltageLevelInSubstation">
- <xs:selector xpath="./scl:VoltageLevel"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniquePowerTranformerInSubstation">
- <xs:selector xpath="./scl:PowerTransformer"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniqueGeneralEquipmentInSubstation">
- <xs:selector xpath="./scl:GeneralEquipment"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- <xs:unique name="uniqueFunctionInSubstation">
- <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>
- <!-- This identity constraint must be removed, as there is a problem with the (according to part 6 text)
- predefined connectivity node grounded resp GROUNDED. If a terminal references this node, which
- is naturally NOT defined explicitely in the SCL file, verification fails. As far as I know, there is no way
- to restrict the constraint in this respect, so that for value grounded it is allowed to have no explicit definition.
- <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="@lnInst"/>
- <xs:field xpath="@lnClass"/>
- <xs:field xpath="@iedName"/>
- <xs:field xpath="@ldInst"/>
- <xs:field xpath="@prefix"/>
- </xs:unique>
- <xs:unique name="uniqueChildNameInSubstation">
- <xs:selector xpath="./*"/>
- <xs:field xpath="@name"/>
- </xs:unique>
- </xs:element>
- </xs:schema>
|