diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index f968a95f5f..a35290123c 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,5 +1,5 @@
{
"packages/openscd": "0.37.0",
"packages/core": "0.1.4",
- ".": "0.40.0"
+ ".": "0.41.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4159866670..17e2c8249d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,17 @@
# Changelog
+## [0.41.0](https://github.com/openscd/open-scd/compare/v0.40.0...v0.41.0) (2025-08-04)
+
+
+### Features
+
+* update nsd files ([#1691](https://github.com/openscd/open-scd/issues/1691)) ([c437f5a](https://github.com/openscd/open-scd/commit/c437f5acaf5a45032cfae559ecf70de968913d45))
+
+
+### Bug Fixes
+
+* **Settings:** Make language loader configureable ([#1693](https://github.com/openscd/open-scd/issues/1693)) ([5205a9f](https://github.com/openscd/open-scd/commit/5205a9f751d8e9dbc0cb5b2630af39c31dc09460))
+
## [0.40.0](https://github.com/openscd/open-scd/compare/v0.39.0...v0.40.0) (2025-07-31)
diff --git a/packages/compas-open-scd/package.json b/packages/compas-open-scd/package.json
index b5ebb7b2af..6c9774552a 100644
--- a/packages/compas-open-scd/package.json
+++ b/packages/compas-open-scd/package.json
@@ -1,6 +1,6 @@
{
"name": "compas-open-scd",
- "version": "0.40.0-1",
+ "version": "0.41.0-1",
"repository": "https://github.com/openscd/open-scd.git",
"description": "OpenSCD CoMPAS Edition",
"directory": "packages/compas-open-scd",
diff --git a/packages/distribution/public/xml/IEC_61850-7-2_2007B3.nsd b/packages/distribution/public/xml/IEC_61850-7-2_2007B5.nsd
similarity index 98%
rename from packages/distribution/public/xml/IEC_61850-7-2_2007B3.nsd
rename to packages/distribution/public/xml/IEC_61850-7-2_2007B5.nsd
index 9635bf57ce..ba98cb1ef4 100644
--- a/packages/distribution/public/xml/IEC_61850-7-2_2007B3.nsd
+++ b/packages/distribution/public/xml/IEC_61850-7-2_2007B5.nsd
@@ -5,10 +5,15 @@
id="IEC 61850-7-2"
version="2007"
revision="B"
- release="3"
- umlVersion="WG10built4"
- umlDate="2019-10-02T00:00:00Z"
- publicationStage="IS">
+ release="5"
+ umlVersion="WG10built12"
+ umlDate="2024-01-15"
+ publicationStage="IS"
+ appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)"
+ namespaceType="basic"
+ nsdVersion="2017"
+ nsdRevision="B"
+ nsdRelease="5">
COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-2:2010 Edition 2.1; see the IEC_61850-7-2:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
@@ -17,8 +22,8 @@
+ revision="B"
+ tissues="1781, 1782, 1801, 1841, 1847, 1822"/>
@@ -531,4 +536,4 @@
presCond="M"/>
-
\ No newline at end of file
+
diff --git a/packages/openscd/public/xml/IEC_61850-7-3_2007B3.nsd b/packages/distribution/public/xml/IEC_61850-7-3_2007B5.nsd
similarity index 99%
rename from packages/openscd/public/xml/IEC_61850-7-3_2007B3.nsd
rename to packages/distribution/public/xml/IEC_61850-7-3_2007B5.nsd
index 777a13cf59..7ec83fc09f 100644
--- a/packages/openscd/public/xml/IEC_61850-7-3_2007B3.nsd
+++ b/packages/distribution/public/xml/IEC_61850-7-3_2007B5.nsd
@@ -5,10 +5,15 @@
id="IEC 61850-7-3"
version="2007"
revision="B"
- release="3"
- umlVersion="WG10built3"
- umlDate="2019-10-02T00:00:00Z"
- publicationStage="IS">
+ release="5"
+ umlVersion="WG10built12"
+ umlDate="2024-02-12"
+ publicationStage="IS"
+ appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)"
+ namespaceType="basic"
+ nsdVersion="2017"
+ nsdRevision="B"
+ nsdRelease="5">
COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-3:2010 Edition 2.1; see the IEC_61850-7-3:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
@@ -17,9 +22,12 @@
-
+ revision="B"
+ tissues="1716, 1730, 1783, 1785, 1807, 1829, 1840, 1851, 1852, 1889, 1900"/>
+
@@ -232,7 +240,7 @@
descID="IEC61850_7_3.DAEnums::MultiplierKind.n.desc"/>
+ descID="IEC61850_7_3.DAEnums::MultiplierKind.µ.desc"/>
@@ -385,7 +393,7 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.Bq.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.°C.desc"/>
@@ -436,31 +444,31 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.Pa.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m³.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_s².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m³_per_s.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_m³.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.kg_per_m³.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m²_per_s.desc"/>
@@ -478,10 +486,10 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.rad_per_s.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.W_per_m².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.J_per_m².desc"/>
@@ -516,16 +524,16 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.Vs.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.V².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.A².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.A²t.desc"/>
@@ -549,7 +557,7 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.char_per_s.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.kgm².desc"/>
@@ -1429,7 +1437,8 @@
type="Timestamp"
dchg="true"
descID="IEC61850_7_3.CDCStatusInfo::BCR.strTm.desc"
- presCond="O"/>
+ presCond="OF"
+ presCondArgs="frVal"/>
+ presCond="MO"
+ presCondArgs="db"/>
+ presCond="MO"
+ presCondArgs="db"/>
-
+
-
+
+ release="5"
+ umlVersion="WG10built12"
+ umlDate="2024-02-14"
+ publicationStage="IS"
+ appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)"
+ namespaceType="basic"
+ nsdVersion="2017"
+ nsdRevision="B"
+ nsdRelease="5">
- COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2007; see the IEC_61850-7-4:2007 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
+ COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2020 Edition 2.1; see the IEC_61850-7-4:2020 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
See www.iec.ch/CCv1 for copyright details.
-
+
+
@@ -953,6 +962,7 @@
+
@@ -1164,11 +1174,9 @@
-
-
-
+
+
+
@@ -1611,7 +1619,8 @@
-
+
+
@@ -1957,12 +1966,6 @@
-
@@ -3547,6 +3554,20 @@
descID="IEC61850_7_4.LNGroupL::LTRK.SgcbTrk.desc"
presCond="O"
dsPresCond="na"/>
+
+
-
-
-
+
-
-
-
+
+
-
+
+
+
NOTE: OpenSCD is using name space description (NSD) files as a reference (how it should be). These files are provided by the standard but not for all Editions. That is why we only validate the `DataTypeTemplate` section for projects 2007B3 and higher (Edition 2.1).
-
-
+> NOTE: OpenSCD is using name space description (NSD) files as a reference (how it should be). These files are provided by the standard but not for all Editions. That is why we only validate the `DataTypeTemplate` section for projects 2007B5 and higher (Edition 2.1).
The validator is triggered on every change in the project basis and the results are displayed in the **diagnostics** pane like so:

-
There rules we have implemented so far cover the following issues:
- Mandatory `DO` is missing in `LNodeType`
@@ -16,12 +13,12 @@ There rules we have implemented so far cover the following issues:
- Mandatory `SDO` is missing in the `DOType`
- Mandatory `BDA` is missing in the `DAType`
- Missing `DA` needed for control operation depending in ctlModel
- - `sbo-with-enhanced-security`: Missing `Oper`, `SBOw`
- - `sbo-with-normal-security`: Missing `Oper`, `SBO`
- - `direct-with-enhanced-security`: Missing `Oper`
- - `direct-with-normal-security`: Missing `Oper`
-- Check for correct service data implementation `Oper`,
+ - `sbo-with-enhanced-security`: Missing `Oper`, `SBOw`
+ - `sbo-with-normal-security`: Missing `Oper`, `SBO`
+ - `direct-with-enhanced-security`: Missing `Oper`
+ - `direct-with-normal-security`: Missing `Oper`
+- Check for correct service data implementation `Oper`,
- Broken reference of `DO` to `DOType` - missing type or invalid type
-- Broken reference of `SDO` to `DOType` - missing type or invalid type
-- Broken reference of `DA` to `DAType` - missing type or invalid type
-- Broken reference of `BDA` to `DAType` - missing type or invalid type
+- Broken reference of `SDO` to `DOType` - missing type or invalid type
+- Broken reference of `DA` to `DAType` - missing type or invalid type
+- Broken reference of `BDA` to `DAType` - missing type or invalid type
diff --git a/packages/plugins/public/xml/IEC_61850-7-2_2007B3.nsd b/packages/openscd/public/xml/IEC_61850-7-2_2007B5.nsd
similarity index 98%
rename from packages/plugins/public/xml/IEC_61850-7-2_2007B3.nsd
rename to packages/openscd/public/xml/IEC_61850-7-2_2007B5.nsd
index 9635bf57ce..ba98cb1ef4 100644
--- a/packages/plugins/public/xml/IEC_61850-7-2_2007B3.nsd
+++ b/packages/openscd/public/xml/IEC_61850-7-2_2007B5.nsd
@@ -5,10 +5,15 @@
id="IEC 61850-7-2"
version="2007"
revision="B"
- release="3"
- umlVersion="WG10built4"
- umlDate="2019-10-02T00:00:00Z"
- publicationStage="IS">
+ release="5"
+ umlVersion="WG10built12"
+ umlDate="2024-01-15"
+ publicationStage="IS"
+ appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)"
+ namespaceType="basic"
+ nsdVersion="2017"
+ nsdRevision="B"
+ nsdRelease="5">
COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-2:2010 Edition 2.1; see the IEC_61850-7-2:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
@@ -17,8 +22,8 @@
+ revision="B"
+ tissues="1781, 1782, 1801, 1841, 1847, 1822"/>
@@ -531,4 +536,4 @@
presCond="M"/>
-
\ No newline at end of file
+
diff --git a/packages/distribution/public/xml/IEC_61850-7-3_2007B3.nsd b/packages/openscd/public/xml/IEC_61850-7-3_2007B5.nsd
similarity index 99%
rename from packages/distribution/public/xml/IEC_61850-7-3_2007B3.nsd
rename to packages/openscd/public/xml/IEC_61850-7-3_2007B5.nsd
index 777a13cf59..7ec83fc09f 100644
--- a/packages/distribution/public/xml/IEC_61850-7-3_2007B3.nsd
+++ b/packages/openscd/public/xml/IEC_61850-7-3_2007B5.nsd
@@ -5,10 +5,15 @@
id="IEC 61850-7-3"
version="2007"
revision="B"
- release="3"
- umlVersion="WG10built3"
- umlDate="2019-10-02T00:00:00Z"
- publicationStage="IS">
+ release="5"
+ umlVersion="WG10built12"
+ umlDate="2024-02-12"
+ publicationStage="IS"
+ appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)"
+ namespaceType="basic"
+ nsdVersion="2017"
+ nsdRevision="B"
+ nsdRelease="5">
COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-3:2010 Edition 2.1; see the IEC_61850-7-3:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
@@ -17,9 +22,12 @@
-
+ revision="B"
+ tissues="1716, 1730, 1783, 1785, 1807, 1829, 1840, 1851, 1852, 1889, 1900"/>
+
@@ -232,7 +240,7 @@
descID="IEC61850_7_3.DAEnums::MultiplierKind.n.desc"/>
+ descID="IEC61850_7_3.DAEnums::MultiplierKind.µ.desc"/>
@@ -385,7 +393,7 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.Bq.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.°C.desc"/>
@@ -436,31 +444,31 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.Pa.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m³.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_s².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m³_per_s.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_m³.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.kg_per_m³.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m²_per_s.desc"/>
@@ -478,10 +486,10 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.rad_per_s.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.W_per_m².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.J_per_m².desc"/>
@@ -516,16 +524,16 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.Vs.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.V².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.A².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.A²t.desc"/>
@@ -549,7 +557,7 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.char_per_s.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.kgm².desc"/>
@@ -1429,7 +1437,8 @@
type="Timestamp"
dchg="true"
descID="IEC61850_7_3.CDCStatusInfo::BCR.strTm.desc"
- presCond="O"/>
+ presCond="OF"
+ presCondArgs="frVal"/>
+ presCond="MO"
+ presCondArgs="db"/>
+ presCond="MO"
+ presCondArgs="db"/>
-
+
-
+
+ release="5"
+ umlVersion="WG10built12"
+ umlDate="2024-02-14"
+ publicationStage="IS"
+ appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)"
+ namespaceType="basic"
+ nsdVersion="2017"
+ nsdRevision="B"
+ nsdRelease="5">
- COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2007; see the IEC_61850-7-4:2007 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
+ COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2020 Edition 2.1; see the IEC_61850-7-4:2020 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
See www.iec.ch/CCv1 for copyright details.
-
+
+
@@ -953,6 +962,7 @@
+
@@ -1164,11 +1174,9 @@
-
-
-
+
+
+
@@ -1611,7 +1619,8 @@
-
+
+
@@ -1957,12 +1966,6 @@
-
@@ -3547,6 +3554,20 @@
descID="IEC61850_7_4.LNGroupL::LTRK.SgcbTrk.desc"
presCond="O"
dsPresCond="na"/>
+
+
-
-
-
+
-
-
-
+
+
-
+
+
+
;
+ languages: Languages;
+}
+
export const defaults: Settings = {
language: 'en',
theme: 'light',
@@ -84,6 +89,9 @@ export class OscdSettings extends LitElement {
@property({ type: Boolean })
nsdUploadButton = true;
+ @property({ type: Object })
+ languageConfig: LanguageConfig = { languages, loader };
+
/**
* Get the versions of the current OpenSCD NSD files.
* @returns Current version, revision and release for all current OpenSCD NSD files.
@@ -333,15 +341,12 @@ export class OscdSettings extends LitElement {
return new DOMParser().parseFromString(text, 'application/xml');
}
- constructor() {
- super();
+ connectedCallback(): void {
+ super.connectedCallback();
- registerTranslateConfig({ loader, empty: key => key });
+ registerTranslateConfig({ loader: this.languageConfig.loader, empty: key => key });
use(this.settings.language);
- }
- connectedCallback(): void {
- super.connectedCallback();
if (this.host) {
this.host!.addEventListener('oscd-settings', (evt: SettingsUIEvent) => {
evt.detail.show ? this.settingsUI.show() : this.settingsUI.close();
@@ -365,7 +370,7 @@ export class OscdSettings extends LitElement {
icon="language"
label="${get('settings.language')}"
>
- ${Object.keys(languages).map(
+ ${Object.keys(this.languageConfig.languages).map(
lang =>
html` response.text())
.then(str => new DOMParser().parseFromString(str, 'application/xml'));
-export const iec6185073 = fetch('public/xml/IEC_61850-7-3_2007B3.nsd')
+export const iec6185073 = fetch('public/xml/IEC_61850-7-3_2007B5.nsd')
.then(response => response.text())
.then(str => new DOMParser().parseFromString(str, 'application/xml'));
-export const iec6185072 = fetch('public/xml/IEC_61850-7-2_2007B3.nsd')
+export const iec6185072 = fetch('public/xml/IEC_61850-7-2_2007B5.nsd')
.then(response => response.text())
.then(str => new DOMParser().parseFromString(str, 'application/xml'));
export const iec6185081 = fetch('public/xml/IEC_61850-8-1_2003A2.nsd')
.then(response => response.text())
- .then(str => new DOMParser().parseFromString(str, 'application/xml'));
\ No newline at end of file
+ .then(str => new DOMParser().parseFromString(str, 'application/xml'));
diff --git a/packages/openscd/src/translations/de.ts b/packages/openscd/src/translations/de.ts
index 8cca3e42bb..b4cef871fd 100644
--- a/packages/openscd/src/translations/de.ts
+++ b/packages/openscd/src/translations/de.ts
@@ -93,7 +93,7 @@ export const de: Translations = {
select: '{{tagName}} auswählen',
edit: '{{tagName}} bearbeiten',
add: '{{tagName}} hinzufügen',
- selectAp: 'ConnectedAP auswählen'
+ selectAp: 'ConnectedAP auswählen',
},
},
openSCD: {
@@ -180,7 +180,7 @@ export const de: Translations = {
zeroissues: 'Es konnten keine Fehler in dem Projekt gefunden werden.',
placeholder: 'Hier werden Validierungsfehler angezeigt.',
missingnsd:
- 'DataTypeTemplates können nicht validiert werden. Das Projekt muss die Version 2007B3 oder höher haben.',
+ 'DataTypeTemplates können nicht validiert werden. Das Projekt muss die Version 2007B5 oder höher haben.',
},
plugins: {
heading: 'Plug-ins',
@@ -284,7 +284,7 @@ export const de: Translations = {
prefixHelper: 'Prefix des Logical Nodes',
lnClassHelper: 'Logical Node Klasse',
instHelper: 'Instanz',
- }
+ },
},
ln0: {
wizard: {
@@ -295,7 +295,7 @@ export const de: Translations = {
lnTypeHelper: 'Logical Node Typ',
lnClassHelper: 'Logical Node Klasse',
instHelper: 'Instanz',
- }
+ },
},
powertransformer: {
wizard: {
diff --git a/packages/openscd/src/translations/en.ts b/packages/openscd/src/translations/en.ts
index 5291895a73..ecf7cb4ca0 100644
--- a/packages/openscd/src/translations/en.ts
+++ b/packages/openscd/src/translations/en.ts
@@ -91,7 +91,7 @@ export const en = {
select: 'Select {{tagName}}',
edit: 'Edit {{tagName}}',
add: 'Add {{tagName}}',
- selectAp: 'Select New ConnectedAP'
+ selectAp: 'Select New ConnectedAP',
},
},
openSCD: {
@@ -157,7 +157,7 @@ export const en = {
zeroissues: 'No errors found in the project',
placeholder: 'Issues found during validation will show up here',
missingnsd:
- 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B3',
+ 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B5',
},
plugins: {
heading: 'Plug-ins',
@@ -281,7 +281,7 @@ export const en = {
prefixHelper: 'Prefix of the logical node',
lnClassHelper: 'Logical node class',
instHelper: 'Instance',
- }
+ },
},
ln0: {
wizard: {
@@ -292,7 +292,7 @@ export const en = {
lnTypeHelper: 'Logical node type',
lnClassHelper: 'Logical node class',
instHelper: 'Instance',
- }
+ },
},
powertransformer: {
wizard: {
diff --git a/packages/openscd/src/translations/loader.ts b/packages/openscd/src/translations/loader.ts
index 9ec258df10..c86cb6bf98 100644
--- a/packages/openscd/src/translations/loader.ts
+++ b/packages/openscd/src/translations/loader.ts
@@ -2,7 +2,17 @@ import { Strings } from 'lit-translate';
import { de } from './de.js';
import { en } from './en.js';
import { Language } from '@openscd/core/foundation/deprecated/settings.js';
-export const languages = { en, de };
+
+export interface TranslationObject {
+ [key: string]: string | TranslationObject;
+}
+
+export interface Languages {
+ de: TranslationObject;
+ en: TranslationObject;
+}
+
+export const languages: Languages = { en, de };
export type Translations = typeof en;
diff --git a/packages/openscd/test/integration/Setting.test.ts b/packages/openscd/test/integration/Setting.test.ts
index 363370576d..e5e7483e24 100644
--- a/packages/openscd/test/integration/Setting.test.ts
+++ b/packages/openscd/test/integration/Setting.test.ts
@@ -18,7 +18,7 @@ describe('Oscd-Settings', () => {
`
);
-
+
settings = logger.querySelector('oscd-settings')!;
});
@@ -67,18 +67,18 @@ describe('Oscd-Settings', () => {
settings.settingsUI.show();
await settings.settingsUI.updateComplete;
- const nsdocFile = await fetch('/test/testfiles/nsdoc/IEC_61850-7-2-B-5.nsdoc').then(
+ const nsdocFile = await fetch('/test/testfiles/nsdoc/IEC_61850-7-2-B-3.nsdoc').then(
response => response.text()
);
- logger.dispatchEvent(newLoadNsdocEvent(nsdocFile, 'IEC_61850-7-2-B-5.nsdoc'));
+ logger.dispatchEvent(newLoadNsdocEvent(nsdocFile, 'IEC_61850-7-2-B-3.nsdoc'));
await logger.requestUpdate();
await logger.updateComplete;
expect(logger.log.length).to.be.equal(1);
expect(logger.log[0].title).to.be.equal(
- "The version of IEC 61850-7-2 NSD (2007B3) does not correlate with the version of the corresponding NSDoc (IEC_61850-7-2-B-5.nsdoc, 2007B5)"
+ "The version of IEC 61850-7-2 NSD (2007B5) does not correlate with the version of the corresponding NSDoc (IEC_61850-7-2-B-3.nsdoc, 2007B3)"
);
});
@@ -97,7 +97,7 @@ describe('Oscd-Settings', () => {
expect(logger.log.length).to.be.equal(1);
expect(logger.log[0].title).to.be.equal(
- 'The version of IEC 61850-7-3 NSD (2007B3) does not correlate ' +
+ 'The version of IEC 61850-7-3 NSD (2007B5) does not correlate ' +
'with the version of the corresponding NSDoc (wrong-version.nsdoc, 2007B4)'
);
});
diff --git a/packages/openscd/test/integration/__snapshots__/Setting.test.snap.js b/packages/openscd/test/integration/__snapshots__/Setting.test.snap.js
index 4872c19b31..b0c2def188 100644
--- a/packages/openscd/test/integration/__snapshots__/Setting.test.snap.js
+++ b/packages/openscd/test/integration/__snapshots__/Setting.test.snap.js
@@ -85,7 +85,7 @@ snapshots["Oscd-Settings upload .nsdoc file using event and looks like latest sn
IEC 61850-7-2
- 2007B3
+ 2007B5
diff --git a/packages/openscd/test/testfiles/nsdoc/IEC_61850-7-2.nsdoc b/packages/openscd/test/testfiles/nsdoc/IEC_61850-7-2.nsdoc
index d10a9893cb..6b92041b5f 100644
--- a/packages/openscd/test/testfiles/nsdoc/IEC_61850-7-2.nsdoc
+++ b/packages/openscd/test/testfiles/nsdoc/IEC_61850-7-2.nsdoc
@@ -2,6 +2,6 @@
diff --git a/packages/openscd/test/unit/Setting.test.ts b/packages/openscd/test/unit/Setting.test.ts
index 7f4d0130c7..44a46ba7b4 100644
--- a/packages/openscd/test/unit/Setting.test.ts
+++ b/packages/openscd/test/unit/Setting.test.ts
@@ -75,7 +75,7 @@ describe('OSCD-Settings', () => {
await element.settingsUI.updateComplete;
const nsdocFile = await fetch(
- '/test/testfiles/nsdoc/IEC_61850-7-2-B-5.nsdoc'
+ '/test/testfiles/nsdoc/IEC_61850-7-2-B-3.nsdoc'
).then(response => response.text());
element.setSetting('IEC 61850-7-2', nsdocFile);
diff --git a/packages/openscd/test/unit/__snapshots__/Setting.test.snap.js b/packages/openscd/test/unit/__snapshots__/Setting.test.snap.js
index 75f2ff1516..e06a7e93d9 100644
--- a/packages/openscd/test/unit/__snapshots__/Setting.test.snap.js
+++ b/packages/openscd/test/unit/__snapshots__/Setting.test.snap.js
@@ -422,7 +422,7 @@ snapshots["OSCD-Settings saves chosen .nsdoc file and looks like latest snapshot
IEC 61850-7-2
- 2007B3
+ 2007B5
- 2007B5
+ 2007B3
+ release="5"
+ umlVersion="WG10built12"
+ umlDate="2024-01-15"
+ publicationStage="IS"
+ appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)"
+ namespaceType="basic"
+ nsdVersion="2017"
+ nsdRevision="B"
+ nsdRelease="5">
COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-2:2010 Edition 2.1; see the IEC_61850-7-2:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
@@ -17,8 +22,8 @@
+ revision="B"
+ tissues="1781, 1782, 1801, 1841, 1847, 1822"/>
@@ -531,4 +536,4 @@
presCond="M"/>
-
\ No newline at end of file
+
diff --git a/packages/plugins/public/xml/IEC_61850-7-3_2007B3.nsd b/packages/plugins/public/xml/IEC_61850-7-3_2007B5.nsd
similarity index 99%
rename from packages/plugins/public/xml/IEC_61850-7-3_2007B3.nsd
rename to packages/plugins/public/xml/IEC_61850-7-3_2007B5.nsd
index 777a13cf59..7ec83fc09f 100644
--- a/packages/plugins/public/xml/IEC_61850-7-3_2007B3.nsd
+++ b/packages/plugins/public/xml/IEC_61850-7-3_2007B5.nsd
@@ -5,10 +5,15 @@
id="IEC 61850-7-3"
version="2007"
revision="B"
- release="3"
- umlVersion="WG10built3"
- umlDate="2019-10-02T00:00:00Z"
- publicationStage="IS">
+ release="5"
+ umlVersion="WG10built12"
+ umlDate="2024-02-12"
+ publicationStage="IS"
+ appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)"
+ namespaceType="basic"
+ nsdVersion="2017"
+ nsdRevision="B"
+ nsdRelease="5">
COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-3:2010 Edition 2.1; see the IEC_61850-7-3:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
@@ -17,9 +22,12 @@
-
+ revision="B"
+ tissues="1716, 1730, 1783, 1785, 1807, 1829, 1840, 1851, 1852, 1889, 1900"/>
+
@@ -232,7 +240,7 @@
descID="IEC61850_7_3.DAEnums::MultiplierKind.n.desc"/>
+ descID="IEC61850_7_3.DAEnums::MultiplierKind.µ.desc"/>
@@ -385,7 +393,7 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.Bq.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.°C.desc"/>
@@ -436,31 +444,31 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.Pa.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m³.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_s².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m³_per_s.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_m³.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.kg_per_m³.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.m²_per_s.desc"/>
@@ -478,10 +486,10 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.rad_per_s.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.W_per_m².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.J_per_m².desc"/>
@@ -516,16 +524,16 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.Vs.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.V².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.A².desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.A²t.desc"/>
@@ -549,7 +557,7 @@
descID="IEC61850_7_3.DAEnums::SIUnitKind.char_per_s.desc"/>
+ descID="IEC61850_7_3.DAEnums::SIUnitKind.kgm².desc"/>
@@ -1429,7 +1437,8 @@
type="Timestamp"
dchg="true"
descID="IEC61850_7_3.CDCStatusInfo::BCR.strTm.desc"
- presCond="O"/>
+ presCond="OF"
+ presCondArgs="frVal"/>
+ presCond="MO"
+ presCondArgs="db"/>
+ presCond="MO"
+ presCondArgs="db"/>
-
+
-
+
+ release="5"
+ umlVersion="WG10built12"
+ umlDate="2024-02-14"
+ publicationStage="IS"
+ appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)"
+ namespaceType="basic"
+ nsdVersion="2017"
+ nsdRevision="B"
+ nsdRelease="5">
- COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2007; see the IEC_61850-7-4:2007 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
+ COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2020 Edition 2.1; see the IEC_61850-7-4:2020 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component.
See www.iec.ch/CCv1 for copyright details.
-
+
+
@@ -953,6 +962,7 @@
+
@@ -1164,11 +1174,9 @@
-
-
-
+
+
+
@@ -1611,7 +1619,8 @@
-
+
+
@@ -1957,12 +1966,6 @@
-
@@ -3547,6 +3554,20 @@
descID="IEC61850_7_4.LNGroupL::LTRK.SgcbTrk.desc"
presCond="O"
dsPresCond="na"/>
+
+
-
-
-
+
-
-
-
+
+
-
+
+
+
response.text())
.then(str => new DOMParser().parseFromString(str, 'application/xml'));
-const nsd74 = fetch('public/xml/IEC_61850-7-4_2007B3.nsd')
+const nsd74 = fetch('public/xml/IEC_61850-7-4_2007B5.nsd')
.then(response => response.text())
.then(str => new DOMParser().parseFromString(str, 'application/xml'));
diff --git a/packages/plugins/src/validators/ValidateTemplates.ts b/packages/plugins/src/validators/ValidateTemplates.ts
index c064e203d2..a8becfc2a2 100644
--- a/packages/plugins/src/validators/ValidateTemplates.ts
+++ b/packages/plugins/src/validators/ValidateTemplates.ts
@@ -36,15 +36,13 @@ export default class ValidateTemplates extends LitElement {
}
async validate(): Promise {
- const promises: Promise[] = [];
-
const [version, revision, release] = [
this.doc.documentElement.getAttribute('version') ?? '',
this.doc.documentElement.getAttribute('revision') ?? '',
this.doc.documentElement.getAttribute('release') ?? '',
];
- if (!(version === '2007' && revision === 'B' && Number(release) > 3)) {
+ if (!(version === '2007' && revision === 'B' && Number(release) >= 5)) {
this.dispatchEvent(
newIssueEvent({
validatorId: this.pluginId,
diff --git a/packages/plugins/src/validators/templates/foundation.ts b/packages/plugins/src/validators/templates/foundation.ts
index 70a1b7bc05..89affaffe8 100644
--- a/packages/plugins/src/validators/templates/foundation.ts
+++ b/packages/plugins/src/validators/templates/foundation.ts
@@ -6,15 +6,15 @@ import { dOValidator } from './dosdo.js';
import { dOTypeValidator } from './dotype.js';
import { lNodeTypeValidator } from './lnodetype.js';
-export const iec6185074 = fetch('public/xml/IEC_61850-7-4_2007B3.nsd')
+export const iec6185074 = fetch('public/xml/IEC_61850-7-4_2007B5.nsd')
.then(response => response.text())
.then(str => new DOMParser().parseFromString(str, 'application/xml'));
-export const iec6185073 = fetch('public/xml/IEC_61850-7-3_2007B3.nsd')
+export const iec6185073 = fetch('public/xml/IEC_61850-7-3_2007B5.nsd')
.then(response => response.text())
.then(str => new DOMParser().parseFromString(str, 'application/xml'));
-export const iec6185072 = fetch('public/xml/IEC_61850-7-2_2007B3.nsd')
+export const iec6185072 = fetch('public/xml/IEC_61850-7-2_2007B5.nsd')
.then(response => response.text())
.then(str => new DOMParser().parseFromString(str, 'application/xml'));
diff --git a/packages/plugins/test/integration/editors/__snapshots__/GooseSubscriberMessageBinding.test.snap.js b/packages/plugins/test/integration/editors/__snapshots__/GooseSubscriberMessageBinding.test.snap.js
index 0e87a09d80..56ba6fbec9 100644
--- a/packages/plugins/test/integration/editors/__snapshots__/GooseSubscriberMessageBinding.test.snap.js
+++ b/packages/plugins/test/integration/editors/__snapshots__/GooseSubscriberMessageBinding.test.snap.js
@@ -659,7 +659,7 @@ snapshots["GOOSE subscriber plugin in Publisher view with a selected GOOSE messa
snapshots["GOOSE subscriber plugin in Subscriber view per default the plugin itsself looks like the latest snapshot"] =
`
-
+
-
+
-
+
-
+
-
+
-
+
- 23
+ 25
- 24
+ 26
{
>
`);
element = parent.getActivePlugin();
- element.pluginId = 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js';
+ element.pluginId =
+ 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js';
await element.validate();
await parent.updateComplete;
@@ -52,7 +53,8 @@ describe('ValidateTemplates OpenSCD integration test ', () => {
>
`);
element = parent.getActivePlugin();
- element.pluginId = 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js';
+ element.pluginId =
+ 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js';
await element.validate();
await parent.updateComplete;
@@ -68,7 +70,7 @@ describe('ValidateTemplates OpenSCD integration test ', () => {
await expect(parent.historyAddon.diagnosticUI).to.equalSnapshot();
});
});
- describe('with schema version smaller "2007B3"', () => {
+ describe('with schema version smaller "2007B5"', () => {
beforeEach(async () => {
doc = await fetch('/test/testfiles/valid2007B.scd')
.then(response => response.text())
@@ -80,7 +82,8 @@ describe('ValidateTemplates OpenSCD integration test ', () => {
>
`);
element = parent.getActivePlugin();
- element.pluginId = 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js';
+ element.pluginId =
+ 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js';
await element.validate();
await parent.updateComplete;
@@ -128,7 +131,9 @@ const builtinPlugins: Plugin[] = [
},
{
name: 'Subscriber Message Binding (GOOSE)',
- src: generatePluginPath('plugins/src/editors/GooseSubscriberMessageBinding.js'),
+ src: generatePluginPath(
+ 'plugins/src/editors/GooseSubscriberMessageBinding.js'
+ ),
icon: 'link',
default: false,
kind: 'editor',
@@ -137,7 +142,9 @@ const builtinPlugins: Plugin[] = [
},
{
name: 'Subscriber Data Binding (GOOSE)',
- src: generatePluginPath('plugins/src/editors/GooseSubscriberDataBinding.js'),
+ src: generatePluginPath(
+ 'plugins/src/editors/GooseSubscriberDataBinding.js'
+ ),
icon: 'link',
default: false,
kind: 'editor',
@@ -146,7 +153,9 @@ const builtinPlugins: Plugin[] = [
},
{
name: 'Subscriber Message Binding (SMV)',
- src: generatePluginPath('plugins/src/editors/SMVSubscriberMessageBinding.js'),
+ src: generatePluginPath(
+ 'plugins/src/editors/SMVSubscriberMessageBinding.js'
+ ),
icon: 'link',
default: false,
kind: 'editor',
@@ -363,5 +372,5 @@ const builtinPlugins: Plugin[] = [
];
export function generatePluginPath(plugin: string): string {
- return location.origin+location.pathname+plugin;
+ return location.origin + location.pathname + plugin;
}
diff --git a/packages/plugins/test/integration/validators/__snapshots__/ValidateTemplates.test.snap.js b/packages/plugins/test/integration/validators/__snapshots__/ValidateTemplates.test.snap.js
index 3d74c2db94..6ce742050f 100644
--- a/packages/plugins/test/integration/validators/__snapshots__/ValidateTemplates.test.snap.js
+++ b/packages/plugins/test/integration/validators/__snapshots__/ValidateTemplates.test.snap.js
@@ -529,7 +529,7 @@ snapshots["ValidateTemplates OpenSCD integration test with issues in the DataTy
`;
/* end snapshot ValidateTemplates OpenSCD integration test with issues in the DataTypeTemplates section pushes issues to the diagnostics pane that look like the latest snapshot */
-snapshots["ValidateTemplates OpenSCD integration test with schema version smaller \"2007B3\" looks like the latest snapshot"] =
+snapshots["ValidateTemplates OpenSCD integration test with schema version smaller \"2007B5\" looks like the latest snapshot"] =
`
-
- Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B3
+ Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B5
@@ -574,5 +574,5 @@ snapshots["ValidateTemplates OpenSCD integration test with schema version small
`;
-/* end snapshot ValidateTemplates OpenSCD integration test with schema version smaller "2007B3" looks like the latest snapshot */
+/* end snapshot ValidateTemplates OpenSCD integration test with schema version smaller "2007B5" looks like the latest snapshot */
diff --git a/packages/plugins/test/testfiles/templates/dotypes.scd b/packages/plugins/test/testfiles/templates/dotypes.scd
index b26c94203d..61d96017e7 100644
--- a/packages/plugins/test/testfiles/templates/dotypes.scd
+++ b/packages/plugins/test/testfiles/templates/dotypes.scd
@@ -1,5 +1,5 @@
-
+
TrainingIEC61850
diff --git a/packages/plugins/test/testfiles/validators/datatypetemplateerrors.scd b/packages/plugins/test/testfiles/validators/datatypetemplateerrors.scd
index 4fcc8359ac..719cc2b7f2 100644
--- a/packages/plugins/test/testfiles/validators/datatypetemplateerrors.scd
+++ b/packages/plugins/test/testfiles/validators/datatypetemplateerrors.scd
@@ -1,5 +1,5 @@
-
+
TrainingIEC61850
diff --git a/packages/plugins/test/testfiles/validators/zeroissues.scd b/packages/plugins/test/testfiles/validators/zeroissues.scd
index c432616962..de2bb22a0a 100644
--- a/packages/plugins/test/testfiles/validators/zeroissues.scd
+++ b/packages/plugins/test/testfiles/validators/zeroissues.scd
@@ -1,5 +1,5 @@
-
+
diff --git a/packages/plugins/test/unit/validators/ValidateTemplates.test.ts b/packages/plugins/test/unit/validators/ValidateTemplates.test.ts
index 3154a8655d..96f80598af 100644
--- a/packages/plugins/test/unit/validators/ValidateTemplates.test.ts
+++ b/packages/plugins/test/unit/validators/ValidateTemplates.test.ts
@@ -127,12 +127,12 @@ describe('ValidateTemplates', () => {
);
});
- it('pushes only diag.missingnsd issue to diagnostics pane for SCL version < 2007B3', async () => {
+ it('pushes only diag.missingnsd issue to diagnostics pane for SCL version < 2007B5', async () => {
element.doc.querySelector('SCL')?.setAttribute('version', '2003');
await element.validate();
expect(issueEvent).to.have.been.calledOnce;
expect(issueEvent.args[0][0].detail.title).to.contain(
- 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B3'
+ 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B5'
);
});
@@ -142,7 +142,7 @@ describe('ValidateTemplates', () => {
await element.validate();
expect(issueEvent).to.have.been.calledOnce;
expect(issueEvent.args[0][0].detail.title).to.contain(
- 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B3'
+ 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B5'
);
});