2013-03-14 56 views
0

我有哪裏一些元素是內部資源的XML文件。 像反序列化XML元件,其引用(RDF參考資料)

<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#代碼,我有類結構像

[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即將到來的元素空值。

我不知道如何序列化是在XML資源的XML元素。我錯過了c#中xml序列化的一些概念,我找不到如何尋找幫助/谷歌這個問題。

+0

不幸的是,XML序列不是序列化和反序列化所有的XML一個完整的工具。在這種情況下,我認爲你必須「自己動手」。 XML序列化程序不處理引用(這是你在這裏的)。看看[LINQ to XML](http://msdn.microsoft.com/en-us/library/bb387098.aspx)。 – 2013-03-14 23:32:32

+0

@JohnSaunders謝謝。我花了很多時間開發UML結構和編碼。一切都很好,直到我遇到這個資源參考問題。 – 2013-03-14 23:39:15

+2

這應該是一個提示。建模應穿插編碼,測試和發佈。否則,你可以結束一個無法實現的漂亮模型。 – 2013-03-14 23:41:18

回答

0

如果你使用RDF的工作,爲什麼不使用RDF庫? RDF可以被序列化爲XML,但是如在例如this,有幾種方法可以這樣做。例如,rdf:ID屬性可以替換爲rdf:about - 這可能會破壞解析器。

在.NET庫與RDF dotnetRDF工作可能是你的興趣。