if (requested_syntax_name.equals(Z3950Constants.RECSYN_HTML)
|| requested_syntax_name.equals("sgml")) {
LOGGER.finer("Returning OctetAligned record for "
+ requested_syntax_name);
rec.direct_reference = reg.oidByName(requested_syntax_name);
rec.encoding = new encoding_inline0_type();
rec.encoding.which = encoding_inline0_type.octet_aligned_CID;
String raw_string = (String) raw_records[i]
.getOriginalObject();
rec.encoding.o = raw_string.getBytes();
if (raw_string.length() == 0) {
// can't make a html record
retval.which = Records_type.nonsurrogatediagnostic_CID;
DefaultDiagFormat_type default_diag = new DefaultDiagFormat_type();
retval.o = default_diag;
default_diag.diagnosticSetId = reg.oidByName("diag-1");
default_diag.condition = BigInteger.valueOf(227);
default_diag.addinfo = new addinfo_inline14_type();
default_diag.addinfo.which = addinfo_inline14_type.v2addinfo_CID;
default_diag.addinfo.o = (Object) "1.2.840.10003.5.109.3";
return retval;
}
} else if (requested_syntax_name.equals(
Z3950Constants.RECSYN_XML)) {
// Since XML is our canonical internal schema,
//all realisations of InformationFragment
// are capable of providing an XML representation of
//themselves, so just use the
// Fragments getDocument method.
LOGGER.finer("Returning OctetAligned XML");
java.io.StringWriter sw = new java.io.StringWriter();
try {
OutputFormat format = new OutputFormat(raw_records[i]
.getDocument());
XMLSerializer serial = new XMLSerializer(sw, format);
serial.asDOMSerializer();
serial.serialize(raw_records[i].getDocument()
.getDocumentElement());
} catch (Exception e) {
LOGGER.severe("Problem serializing dom tree to"
+ " result record" + e.getMessage());
}
rec.direct_reference = reg.oidByName(requested_syntax_name);
rec.encoding = new encoding_inline0_type();
rec.encoding.which = encoding_inline0_type.octet_aligned_CID;
rec.encoding.o = sw.toString().getBytes();
} else { //if ( requested_syntax_name.equals
// (Z3950Constants.RECSYN_SUTRS)){
rec.direct_reference = reg.oidByName(requested_syntax_name);
rec.encoding = new encoding_inline0_type();
rec.encoding.which = encoding_inline0_type.single_asn1_type_CID;
rec.encoding.o = ((String) (raw_records[i]
.getOriginalObject()));
}