//============================================================================ /// <summary> /// Reads the fields/elements from the SDML value. /// </summary> //============================================================================ protected override void getFldElemList() { TSDMLValue newMember; XmlNode memberNode; XmlNode valNode; String strVal; //builds the child list using the parent's parser and just shifts the //parser's topElement domnode respectively. memberNode = parser.firstMember(parser.rootNode()); //looks for <element> or <field> children //while more <element> or <field> children while (memberNode != null) { newMember = new TSDMLValue(parser, memberNode, ""); FMembers.Add(newMember); //add to the list of children memberNode = parser.nextMember(memberNode); } //---------------------------------------------------------------- //Scalar arrays may have values as a list of <val> elements if (FIsArray && (FBaseType != TTypedValue.TBaseType.ITYPE_DEF) && (count() == 0)) { valNode = parser.firstElementChild(parser.rootNode(), "val"); while (valNode != null) //for each <val> node { strVal = parser.getText(valNode); //get the string from the <val></val> //create a child of the parent's type with this value newMember = (TSDMLValue)addScalar("", FBaseType); newMember.setValue(strVal); valNode = parser.nextElementSibling(valNode, "val"); } //next <val> } }
//============================================================================ /// <summary> /// Builds the list of children typed values. /// </summary> //============================================================================ protected override void getFldElemList() { TDDMLValue newMember; XmlNode memberNode; //builds the child list using the parent's parser and just shifts the //parser's topElement domnode respectively. memberNode = parser.firstMember(parser.rootNode()); while (memberNode != null) { newMember = new TDDMLValue(parser, memberNode, ""); FMembers.Add(newMember); //add to the list of children memberNode = parser.nextMember(memberNode); } }
//============================================================================ /// <summary> /// Finds children nodes in the XML doc and creates member items of this type. /// </summary> //============================================================================ protected override void getFldElemList() { TInitValue newMember; XmlNode memberNode; string buf; //builds the child list using the parent's parser and just shifts the //parser's topElement domnode respectively. memberNode = parser.firstMember(parser.rootNode()); while (memberNode != null) { newMember = new TInitValue(parser, memberNode, ""); buf = parser.getAttrValue(memberNode, "descr"); newMember.setDescr(buf, 512); FMembers.Add(newMember); //add to the list of children memberNode = parser.nextMember(memberNode); } if (FIsArray && (FBaseType != TTypedValue.TBaseType.ITYPE_DEF)) { makeDefaultAndRange(); } }