"between the two kinds of Property",
"Examining the xml attributes and elements of a Sequenced DataObject again."
);
XSDHelper xsdHelper = getScope().getXSDHelper();
incrementIndent();
for(Iterator it=dataObject.getInstanceProperties().iterator(); it.hasNext();) {
Property property = (Property)it.next();
if (xsdHelper.isAttribute(property)) {
indent();
buf.append("Property (XML Attribute): ").append(property.getName()).append(" - ").append(dataObject.get(property));
lineBreak();
}
}
decrementIndent();
Sequence seq = dataObject.getSequence();
commentary(
"The Property/Value pairs of a Sequence can be accessed via the getProperty(int) and getValue(int)\n"
+ "accessor methods of the Sequence interface. The size() method of the Sequence tells us how many there are.\n"
+ "If the getProperty(int) method retunes null, then the value is text. These text values may be encountered\n"
+ "when the DataObject's type is 'mixed' (dataObject.getType().isMixed() == true). A typical example of this\n"
+ "is when the data graph represents a form letter.",
"Inspecting the Property/Value pairs of another Sequence");
incrementIndent();
indent();
buf.append("Sequence: {\n");
incrementIndent();
for (int i = 0; i < seq.size(); i++) {
Property p = seq.getProperty(i);
if (p == null) {
indent();
buf.append("text: ").append(seq.getValue(i));
lineBreak();
} else if(!xsdHelper.isAttribute(p)){
printPropertyValuePair(p, seq.getValue(i));
}
}
decrementIndent();