Monday, November 08, 2010 at 12:05 AM.


on struct (adrmsg, structvalue, adrparent, name, customStructType=nil, customNamespace=nil, customNamespaceURI=nil, flEntityEncodeHighAscii=false) {
		<<04/03/01; 7:49:41 PM by JES
			<<New optional parameter, flEntityEncodeHighAscii, specifies whether to entity-encode high-ascii characters when encoding strings. Default is false. This is passed to soap.encode.main.
		<<04/07/01; 7:24:56 PM by JES
			<<Changed name of customArrayType parameter to customStructType. Pass customStructType, customNamespace and customNamespaceURI in the call to soap.encode.main.
	local (adrelement = soap.xmlutils.addElement (adrparent, name));
	if customStructType != nil {
		if customNamespace == nil {
			scriptError ("Can't encode the struct because a type was specified, but no namespace prefix was given.")};
		if customNamespaceURI == nil {
			scriptError ("Can't encode the struct because a type was specified, but no namespaceURI was given.")};
		soap.xmlutils.declareNamespaceInElement (adrelement, customNamespace, customNamespaceURI);
		soap.xmlutils.addAttributeValue (adrelement, soap.constants.nsSchemaPrefix + ":type", customNamespace + ":" + customStructType)};
	if sizeOf (structvalue) > 0 {
		for adritem in @structvalue {
			soap.encode.main (adrmsg, adritem^, adrelement, nameOf (adritem^), customStructType, customNamespace, customNamespaceURI, flEntityEncodeHighAscii)}}
	else {
		table.assign (adrelement, "")};
	return (adrelement)}

This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.