0

一部の要素が内部のリソースである XML ファイルがあります。お気に入り

<cim:BusbarSection rdf:ID="Busbar_05" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"       xmlns:cim="http://iec.ch/TC57/2001/CIM-schema-cim10#">
<cim:Naming.name>30189P0205_Busbar_01</cim:Naming.name>
<cim:Equipment.MemberOf_EquipmentContainter rdf:resource="#VL_05" />
</cim:BusbarSection>

Equipment.Equipment.MemberOf_EquipmentContainter は、同じ XML ファイルで定義されているリソースですが、別の場所で定義されています。

<cim:VoltageLevel rdf:ID="VL_05" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"  xmlns:cim="http://iec.ch/TC57/2001/CIM-schema-cim10#">
<cim:Naming.name>VL_0.22_1</cim:Naming.name>
<cim:VoltageLevel.MemberOf_Substation rdf:resource="#Substation_01" />
<cim:VoltageLevel.BaseVoltage rdf:resource="#BaseVoltage_02" /></cim:VoltageLevel>

私のC#コードには、Likeのようなクラス構造があります

  [XmlType("BusbarSection", Namespace = "http://iec.ch/TC57/2001/CIM-schema-cim10#")] 
   public class BusbarSection:Connector 
   {
       public BusbarSection()
       {
       }

   }
    public class Connector:Core.ConductingEquipment
   {

      public Connector()
      {
      }

   }
   public class ConductingEquipment:Equipment 
    {
        //functions and constcturess...
    }
    public class Equipment:PowerSystemResource
   {
       [XmlElement("Equipment.MemberOf_EquipmentContainer")]
       public EquipmentContainer MemberOf_EquipmentContainer; 

       public Equipment()
       {
       }

   }

public class EquipmentContainer:PowerSystemResource
{

    public Topology.ConnectivityNode[] ConnectivityNodes;
    public Equipment[] Contains_Equipments; 

    public EquipmentContainer()
    {

    }

}

xml ファイルをシリアル化しようとしていますが、正常に動作していますが、リソース EquipmentContainer を持つ要素が null になっています。

xml のリソースとしての xml 要素をシリアル化する方法がわかりません。c# での xml のシリアル化のいくつかの概念がありません。ヘルプを探す方法が見つかりませんでした。この質問を Google で検索してください。

4

1 に答える 1

0

RDF を使用している場合は、RDF ライブラリを使用してみませんか? RDF は XML としてシリアライズできますが、たとえばthisで説明されているように、シリアライズするにはいくつかの方法があります。たとえば、rdf:ID属性を - に置き換えるとrdf:about、パーサーが壊れる可能性があります。

RDF を操作するための .Net ライブラリーdotnetRDFに興味があるかもしれません。

于 2013-03-22T09:29:06.173 に答える