Documentation Archive Developer
Search
PATH Documentation > WebObjects

Table of Contents

WOXMLCoder


Inherits from:
Object
Package:
com.webobjects.appserver.xml


Class Description


Use this class to encode objects as XML. Encoding can take place either with or without a mapping model. The mapping model provides greater control over the encoding process and is typically used when you are encoding and decoding XML that is destined for, or originates from, an external source. When the WOXMLCoder and WOXMLCoder are used as an archiving mechanism, the mapping model is usually not necessary. For more information on the mapping model, see the "The Format of the Mapping Model" (page 4) in the framework introduction.

When encoding without a mapping model, WOXMLCoder is able to encode any object as long as the object and all of the objects it encapsulates either implement the WOXMLCoder interface or are an instance of String, Number (or a subclass, providing that the subclass doesn't add any new instance variables), NSArray, NSDictionary, NSDate, NSData, or EOEnterpriseObject (or a subclass, providing that all instance variables are either attributes or relationships). During the encoding of an enterprise object, WOXMLCoder uses attribute information stored in the EOModel when assigning an XML type tag to an object. For objects that don't inherit from EOEnterpriseObject, the tag supplied by WOXMLCoder's encodeObjectForKey method is used.

To encode an object, simply invoke the encodeRootObjectForKey method. To perform the reverse operation, generating an object from XML data, see the WOXMLCoder class.




Method Types


Creating a WOXMLCoder
coder
coderWithMapping
Encoding an object graph
encodeRootObjectForKey
Implementing the WOXMLCoding interface
encodeBooleanForKey
encodeDoubleForKey
encodeFloatForKey
encodeIntForKey
encodeObjectForKey


Constructors



WOXMLCoder

protected WOXMLCoder

Description forthcoming.


Static Methods



coder

public static WOXMLCoder coder()

Creates and returns a new WOXMLCoder object.



coderWithMapping

public static WOXMLCoder coderWithMapping(String mappingURL)

Creates and returns a new WOXMLCoder object initialized with the mapping model specified by mappingURL. See "The Format of the Mapping Model" (page 4) for a complete description of the mapping model.


Note: Windows NT uses backslashes where other systems use forward slashes. When prepending the "file:" URL prefix to a path such as is returned by WOResourceManager's pathForResourceNamed method, on Windows NT the prefix must be "file:\\" while on all other platforms the prefix must be "file://". See the RelatedLinks example for one way to select the proper prefix based upon the underlying system.




Instance Methods



cr

protected void cr()

Description forthcoming.

encodeBooleanForKey

public void encodeBooleanForKey( boolean flag, String key)

Invoke from within in your implementation of WOXMLCoder's encodeWithWOXMLCoder method to append an element with XML tag key to the WOXMLCoder object's internal string buffer. The element's XML content is the string representation of flag-either True or False-and the element has an attribute named type with a value of boolean. For example, the following call to encodeBooleanForKey:




encodeBooleanForKey(true, "myTag");

causes the following text to be appended to the WOXMLCoder's internal string buffer:



<myTag type="boolean">True</myTag>



encodedClassName

protected String encodedClassName()

Description forthcoming.

encodeDoubleForKey

public void encodeDoubleForKey( double aDouble, String key)

Invoke from within in your implementation of WOXMLCoder's encodeWithWOXMLCoder method to append an element of type key to the WOXMLCoder object's internal string buffer. The element's content is the string value of aDouble and the element has an attribute named type with a value of double. For example, the following call to encodeDoubleForKey:




encodeDoubleForKey(1.23, "myTag");

causes the following text to be appended to the WOXMLCoder's internal string buffer:



<myTag type="double">1.23</myTag>



encodeFloatForKey

public void encodeFloatForKey( float aFloat, String key)

Invoke from within in your implementation of WOXMLCoder's encodeWithWOXMLCoder method to append an element of type key to the WOXMLCoder object's internal string buffer. The element's content is the string value of aFloat and the element has an attribute named type with a value of float. For example, the following call to encodeFloatForKey:




encodeFloatForKey(1.23, "myTag");

causes the following text to be appended to the WOXMLCoder's internal string buffer:



<myTag type="float">1.23</myTag>



encodeIntForKey

public void encodeIntForKey( int anInt, String key)

Invoke from within in your implementation of WOXMLCoder's encodeWithWOXMLCoder method to append an element of type key to the WOXMLCoder object's internal string buffer. The element's content is the string value of anInt and the element has an attribute named type with a value of int. For example, the following call to encodeIntForKey:




encodeIntForKey(123, "myTag");

causes the following text to be appended to the WOXMLCoder's internal string buffer:



<myTag type="int">123</myTag>



encodeObjectForKey

public void encodeObjectForKey( Object anObject, String key)

Invoke from within in your implementation of WOXMLCoder's encodeWithWOXMLCoder method to append an element of type key to the WOXMLCoder object's internal string buffer. The element's content depends on anObject's class. anObject must meet the same criteria outlined in encodeRootObjectForKey.

encodeRootObjectForKey relies upon this method to perform the actual encoding of objects.



encodedObjectInTag

protected void encodeObjectInTag( String, String, String)

Description forthcoming.

encodeReferenceInTag

protected void encodeReferenceInTag( int, String, String

Description forthcoming.

encodeRootObjectForKey

public synchronized String encodeRootObjectForKeyForKey( Object anObject, String key)

Encodes anObject as XML and returns the resulting XML string. The encoded root object is tagged using key, and has a type attribute that indicates anObject's class. anObject must be one of the following:

If anObject is not one of the above, encodeRootObjectForKey throws an exception.



encodeStringInTag

protected void encodeStringInTag( String, String, String)

Description forthcoming.

escapeString

protected String escapeString(String escapeString)

Description forthcoming.

typeNeedsIndentation

protected boolean typeNeedsIndentation(Object)

Description forthcoming.

xmlTagForClassNamed

protected String xmlTagForClassNamed(String className)

Description forthcoming.

xmlTagForPropertyKey

protected String xmlTagForPropertyKey( String, String)

Description forthcoming.

© 2001 Apple Computer, Inc. (Last Published April 15, 2001)


Table of Contents