怎么解析?
树型数据结构设计处理:
3个表来吧!
(1)one subnetwork
SubNetwork | Attribute[] | Container[]
string | Guid1,Guid2,Guid3 | Guid1,Guid2,Guid3
依次排列 依次排列
(2)one container(container a id)
Identity | IdPath | Attribute[]
Guid | Id1^Id2^Id3 | Guid1,Guid2,Gui3
层次关系 依次排列
(3)one attribute
Identity | vsDataType | vsDataFormateVersion | vsDataPlmn
Guid | | | Name1=Valule1,Name2=Valule2,Name3=Valule3
依次排列
怎么解析? 树型数据结构设计处理: 3个表来吧! (1)one subnetwork SubNetwork | Attribute[] | Container[] string | Guid1,Guid2,Guid3 | Guid1,Guid2,Guid3 依次排列 依次排列 (2)one container(container a id) Identity | IdPath | Attribute[] Guid | Id1^Id2^Id3 | Guid1,Guid2,Gui3 层次关系 依次排列 (3)one attribute Identity | vsDataType | vsDataFormateVersion | vsDataPlmn Guid | | | Name1=Valule1,Name2=Valule2,Name3=Valule3 依次排列
数据实例:
<xn:SubNetwork id="ONRM_RootMo_R"> <xn:attributes> <xn:userDefinedNetworkType></xn:userDefinedNetworkType> <xn:userLabel>ONRM_RootMo_R</xn:userLabel> </xn:attributes> <xn:VsDataContainer id="1"> <xn:attributes> <xn:vsDataType>vsDataAreas</xn:vsDataType> <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion> <es:vsDataAreas/> </xn:attributes> <xn:VsDataContainer id="1_1_2"> <xn:attributes> <xn:vsDataType>vsDataPlmn</xn:vsDataType> <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion> <es:vsDataPlmn> <es:userLabel></es:userLabel> <es:mcc>1</es:mcc> <es:mnc>1</es:mnc> <es:mncLength>2</es:mncLength> <es:aliasPlmnIdentities></es:aliasPlmnIdentities> </es:vsDataPlmn> </xn:attributes> </xn:VsDataContainer> <xn:VsDataContainer id="214_3_2"> <xn:attributes> <xn:vsDataType>vsDataPlmn</xn:vsDataType> <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion> <es:vsDataPlmn> <es:userLabel></es:userLabel> <es:mcc>214</es:mcc> <es:mnc>3</es:mnc> <es:mncLength>2</es:mncLength> <es:aliasPlmnIdentities></es:aliasPlmnIdentities> </es:vsDataPlmn> </xn:attributes> <xn:VsDataContainer id="14122"> <xn:attributes> <xn:vsDataType>vsDataLocationArea</xn:vsDataType> <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion> <es:vsDataLocationArea> <es:userLabel></es:userLabel> <es:lac>14122</es:lac> <es:t3212>10</es:t3212> <es:att>1</es:att> </es:vsDataLocationArea> </xn:attributes> <xn:VsDataContainer id="1"> <xn:attributes> <xn:vsDataType>vsDataRoutingArea</xn:vsDataType> <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion> <es:vsDataRoutingArea> <es:userLabel></es:userLabel> <es:rac>1</es:rac> <es:nmo>1</es:nmo> </es:vsDataRoutingArea> </xn:attributes> </xn:VsDataContainer> <xn:VsDataContainer id="3043"> <xn:attributes> <xn:vsDataType>vsDataServiceArea</xn:vsDataType> <xn:vsDataFormatVersion>EricssonSpecificAttributes.11.26</xn:vsDataFormatVersion> <es:vsDataServiceArea> <es:userLabel></es:userLabel> <es:sac>3043</es:sac> </es:vsDataServiceArea> </xn:attributes> </xn:VsDataContainer>
可以透露的是:
最终的实现还是用的是ParentId这样的设计,因为递归的层次大多很浅。
所以使用ParentId+不同的处理点枚举自动识别处理也很简单。