示例#1
0
 /// <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);
    }
 }
示例#2
0
 /// <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);
       }
    }
 }