예제 #1
0
        private void processDOI(string LNNodeLnType, string LNNodeCnName, XmlNode LNNodeCn, NodeBase LNNb, XmlNodeList LNodeTypeNodes, XmlNodeList DOTypeNodes, XmlNodeList DATypeNodes)
        {
            // Process Instantiated Data Object
            foreach (XmlNode LNNodeTypeNodesNd in LNodeTypeNodes)
            {
                foreach (XmlNode LNNodeTypeNodesNdCn in LNNodeTypeNodesNd.ChildNodes)
                {
                    if (LNNodeCnName == getStringAttribute(LNNodeTypeNodesNdCn, "name") && LNNodeLnType == getStringAttribute(LNNodeTypeNodesNd, "id"))
                    {
                        foreach (XmlNode DOTypeNodesNd in DOTypeNodes)
                        {
                            if (getStringAttribute(LNNodeTypeNodesNdCn, "type") == getStringAttribute(DOTypeNodesNd, "id"))
                            {
                                foreach (XmlNode DOTypeNodesNdCn in DOTypeNodesNd.ChildNodes)
                                {
                                    if (DOTypeNodesNdCn.Name == "DA")
                                    {
                                        NodeBase LNFC   = LNNb.AddChildNode(new NodeFC(getStringAttribute(DOTypeNodesNdCn, "fc")));
                                        NodeBase LNFCCn = LNFC.AddChildNode(new NodeData(getStringAttribute(LNNodeTypeNodesNdCn, "name")));
                                        NodeData Nd     = new NodeData(getStringAttribute(DOTypeNodesNdCn, "name"));
                                        Nd.DataType = getVarDataType(getStringAttribute(DOTypeNodesNdCn, "bType"));

                                        NodeBase DOCn = LNFCCn.AddChildNode(Nd);

                                        if (Nd.DataType == scsm_MMS_TypeEnum.structure)
                                        {
                                            processStructDAType(DOCn, getStringAttribute(DOTypeNodesNdCn, "type"), DATypeNodes);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            foreach (XmlNode LNNodeCnNd in LNNodeCn.ChildNodes)
            {
                if (LNNodeCnNd.Name == "DAI")
                {
                    if (getStringAttribute(LNNodeCnNd, "name") == "d")
                    {
                        foreach (XmlNode LNNodeCnNdCn in LNNodeCnNd)
                        {
                            if (LNNodeCnNdCn.Name == "Val")
                            {
                                NodeBase FCNb = LNNb.FindChildNode("DC");
                                if (FCNb != null)
                                {
                                    NodeBase[] FCNbCn = FCNb.GetChildNodes();
                                    if (FCNbCn.Length > 0)
                                    {
                                        foreach (NodeBase DO in FCNbCn)
                                        {
                                            if (DO.Name == LNNodeCnName)
                                            {
                                                NodeBase[] DOCn = DO.GetChildNodes();

                                                if (DOCn.Length > 0)
                                                {
                                                    foreach (NodeBase DA in DOCn)
                                                    {
                                                        if (DA.Name == "d")
                                                        {
                                                            (DA as NodeData).DataValue = LNNodeCnNdCn.InnerText;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }

                                int i = 0;
                            }
                        }
                    }
                }
            }
        }