Skip to content

Commit 32977d8

Browse files
author
Flurb
committed
Refactoring
Signed-off-by: Flurb <[email protected]>
1 parent 95dc16d commit 32977d8

File tree

3 files changed

+110
-1
lines changed

3 files changed

+110
-1
lines changed

validator/src/main/java/org/lfenergy/compas/scl/validator/xsd/XSDValidator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.xml.sax.SAXException;
2323
import org.xml.sax.SAXParseException;
2424

25-
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.LOADING_SCL_FILE_ERROR_CODE;
2625
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.LOADING_XSD_FILE_ERROR_CODE;
2726

2827
public class XSDValidator {

validator/src/test/java/org/lfenergy/compas/scl/validator/xsd/XSDValidatorTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,16 @@ void validate_WhenCalledWithSclDataContainingInvalidVersion_ThenExceptionIsThrow
5454
assertEquals(LOADING_XSD_FILE_ERROR_CODE, exception.getErrorCode());
5555
}
5656
}
57+
58+
@Test
59+
void validate_WhenCalledWithSclDataContainingMissingdVersion_ThenExceptionIsThrown() throws IOException {
60+
var errorList = new ArrayList<ValidationError>();
61+
try (var inputStream = getClass()
62+
.getResourceAsStream("/scl/validation/example-with-missing-version.scd")) {
63+
var data = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
64+
65+
var exception = assertThrows(SclValidatorException.class, () -> new XSDValidator(errorList, data));
66+
assertEquals(LOADING_XSD_FILE_ERROR_CODE, exception.getErrorCode());
67+
}
68+
}
5769
}
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- SPDX-FileCopyrightText: 2020 RTE FRANCE -->
3+
<!-- -->
4+
<!-- SPDX-License-Identifier: Apache-2.0 -->
5+
6+
<SCL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.iec.ch/61850/2003/SCL">
7+
<Header id="f9283708-bf4f-412c-a1d6-f947b9ac3000" version="1.0.0" revision="Revision" toolID="toolID" nameStructure="IEDName"/>
8+
<IED name="IED_NAME">
9+
<AccessPoint name="AP_NAME">
10+
<Server>
11+
<Authentication/>
12+
<LDevice inst="LDPO">
13+
<LN0 lnType="LN2" lnClass="LLN0" inst="">
14+
<Inputs>
15+
<ExtRef intAddr="INTADDR" pDO="DO1" desc="DESC1"/>
16+
<ExtRef intAddr="INTADDR" pDO="DO2" desc="DESC2"/>
17+
</Inputs>
18+
</LN0>
19+
<LN lnType="LN1" lnClass="PIOC" inst="1">
20+
<Inputs>
21+
<ExtRef intAddr="INTADDR" pDO="DO1" desc="DESC1"/>
22+
<ExtRef intAddr="INTADDR" pDO="DO2" desc="DESC2"/>
23+
</Inputs>
24+
</LN>
25+
<LN lnType="LN1" lnClass="PIOC" inst="2">
26+
<Inputs>
27+
<ExtRef intAddr="INTADDR" pDO="DO1" desc="DESC1"/>
28+
<ExtRef intAddr="INTADDR" pDO="DO2" desc="DESC2"/>
29+
</Inputs>
30+
</LN>
31+
</LDevice>
32+
</Server>
33+
</AccessPoint>
34+
</IED>
35+
<DataTypeTemplates>
36+
<LNodeType lnClass="LLN0" id="LN2">
37+
<DO name="Beh" transient="false"/>
38+
<DO name="FACntRs" type="DO2" transient="true"/>
39+
<DO name="StrVal" type="DO3" transient="false"/>
40+
</LNodeType>
41+
<LNodeType lnClass="PIOC" id="LN1">
42+
<DO name="Beh" type="DO1" transient="false"/>
43+
<DO type="DO2" transient="true"/>
44+
<DO name="StrVal" type="DO3" transient="false"/>
45+
</LNodeType>
46+
<DOType cdc="WYE" id="DO1">
47+
<DA fc="DC" dchg="false" qchg="false" dupd="false" name="dataNs" bType="VisString255">
48+
<Val>IEC 61850-7-3:2007B</Val>
49+
</DA>
50+
<DA fc="CF" dchg="true" qchg="false" dupd="false" name="smpRate" bType="INT32U"/>
51+
</DOType>
52+
<DOType cdc="WYE" id="DO2">
53+
<SDO name="phsBHar" type="DO4"/>
54+
<DA fc="CF" dchg="true" qchg="false" dupd="true" name="angRef" bType="Enum" type="PhaseAngleReferenceKind"/>
55+
</DOType>
56+
<DOType cdc="WYE" id="DO3">
57+
<SDO name="neutHar" type="DO4"/>
58+
<DA fc="CF" dchg="true" qchg="false" dupd="false" name="smpRate" bType="INT32U"/>
59+
<DA fc="ST" dchg="false" qchg="false" dupd="false" name="origin" bType="Struct" type="DA3"/>
60+
</DOType>
61+
<DOType cdc="WYE" id="DO4">
62+
<DA fc="DC" dchg="false" qchg="false" dupd="false" name="configRev" bType="VisString255" valKind="RO" valImport="false"/>
63+
</DOType>
64+
<DAType id="DA1">
65+
<BDA name="operTm" bType="Timestamp"/>
66+
<BDA bType="Struct" type="DA3"/>
67+
<ProtNs type="8-MMS">IEC 61850-8-1:2003</ProtNs>
68+
</DAType>
69+
<DAType id="DA2">
70+
<BDA name="T" bType="Timestamp"/>
71+
<BDA name="ctlVal" bType="Enum" type="RecCycModKind"/>
72+
<ProtNs type="8-MMS">IEC 61850-8-1:2003</ProtNs>
73+
</DAType>
74+
<DAType id="DA3">
75+
<BDA bType="Check"/>
76+
<BDA name="Test" bType="BOOLEAN"/>
77+
<ProtNs type="8-MMS">IEC 61850-8-1:2003</ProtNs>
78+
</DAType>
79+
<EnumType id="RecCycModKind">
80+
<EnumVal ord="1">Completed</EnumVal>
81+
<EnumVal ord="2">Cancelled</EnumVal>
82+
<EnumVal ord="3">New adjustments</EnumVal>
83+
<EnumVal ord="4">AnotherValue</EnumVal>
84+
</EnumType>
85+
<EnumType id="PhaseAngleReferenceKind">
86+
<EnumVal ord="0">Va</EnumVal>
87+
<EnumVal ord="1">Vb</EnumVal>
88+
<EnumVal ord="2">Vc</EnumVal>
89+
<EnumVal ord="3">Aa</EnumVal>
90+
<EnumVal ord="4">Ab</EnumVal>
91+
<EnumVal ord="5">Ac</EnumVal>
92+
<EnumVal ord="6">Vab</EnumVal>
93+
<EnumVal ord="7">Vbc</EnumVal>
94+
<EnumVal ord="8">Vca</EnumVal>
95+
<EnumVal ord="9">AnotherValue</EnumVal>
96+
</EnumType>
97+
</DataTypeTemplates>
98+
</SCL>

0 commit comments

Comments
 (0)