/// <summary> /// This write method is used to set the value of the provided object /// as the text for the XML element. This will acquire the string /// value of the object using <c>toString</c> only if the /// object provided is not an enumerated type. If the object is an /// enumerated type then the <c>Enum.name</c> method is used. /// </summary> /// <param name="value"> /// this is the value to set as the XML element text /// </param> /// <param name="node"> /// this is the XML element to write the text value to /// </param> /// <param name="label"> /// the label that contains the contact details /// </param> public void WriteText(OutputNode node, Object value, Label label) { if(value != null) { String text = factory.getText(value); bool data = label.isData(); node.setData(data); node.setValue(text); } }
/// <summary> /// This write method is used to append the provided object as an /// element to the given XML element object. This will recursively /// write the contacts from the provided object as elements. This is /// done using the <c>Converter</c> acquired from the contact /// label. If the type of the contact value is not of the same /// type as the XML schema class a "class" attribute is appended. /// <p> /// If the element being written is inline, then this will not /// check to see if there is a "class" attribute specifying the /// name of the class. This is because inline elements do not have /// an outer class and thus could never have an override. /// </summary> /// <param name="value"> /// this is the value to be set as an element /// </param> /// <param name="node"> /// this is the XML element to write the element to /// </param> /// <param name="label"> /// the label that contains the contact details /// </param> public void WriteElement(OutputNode node, Object value, Label label) { if(value != null) { String name = label.GetName(context); OutputNode next = node.getChild(name); Type contact = label.getContact(); Class type = contact.Type; if(!label.isInline()) { WriteNamespaces(next, type, label); } if(label.isInline() || !IsOverridden(next, value, contact)) { Converter convert = label.getConverter(context); bool data = label.isData(); next.setData(data); WriteElement(next, value, convert); } } }