OpenEnergyTools / oscd-publisher

Apache License 2.0
1 stars 2 forks source link

Creating an FCDA in LN0 causes schema validity error #21

Closed danyill closed 3 months ago

danyill commented 4 months ago

When I create in a Dataset an FCDA to something within the following LN:

<LN0 lnClass="LLN0" inst="" lnType="SIPROTEC5_LNType_LLN0_LDevice_Generic" desc="BinIO/LLN0/LLN0">
            <Private type="Siemens-MasterId">e0185869-bdc4-49d9-af22-5bb2ae5351c1</Private>
            <DOI name="Mod" desc="Mode (controllable)"/>
            <DOI name="Beh" desc="Behavior"/>
            <DOI name="Health" desc="Health"/>
            <DOI name="NamPlt" desc="Name plate">
              <DAI name="configRev">
                <Val>2022-11-02 06:47:00</Val>
              </DAI>
              <DAI name="ldNs">
                <Val>IEC 61850-7-4:2007B</Val>
              </DAI>
            </DOI>
            <DOI name="GrRef" desc="GrRef">
              <DAI name="setSrcRef">
                <Val>@Application</Val>
              </DAI>
            </DOI>
          </LN0>
        </LDevice>

I get a schema error:

image

What the publisher plugin creates is:

<DataSet name="newDataSet_001">
<FCDA ldInst="BinIO" prefix="" lnClass="LLN0" lnInst="" doName="Beh" daName="q" fc="ST"/>
<FCDA ldInst="BinIO" prefix="" lnClass="LLN0" lnInst="" doName="Beh" daName="stVal" fc="ST"/>
</DataSet>

What we should do is just not write the lnInst attribute if lnClass == "LLN0".

I know it all seems a bit silly given inst="" was allowed on the LN :man_shrugging: but that's how it is...

Here's an example file:

dataset_schema_error.scd.zip