blob: ce3a8ef2ffb9328adfe453b48b514a5a5917de01 [file] [log] [blame]
/**
*
*
* Generated by <a href="http://enunciate.webcohesion.com">Enunciate</a>.
*/
#import <libxml/xmlwriter.h>
#import <libxml/xmlreader.h>
#import <Foundation/Foundation.h>
#ifndef DEBUG_ENUNCIATE
//turn off enunciate debugging.
#define DEBUG_ENUNCIATE 0
#endif
/*******************xml utilities************************************/
int xmlTextReaderAdvanceToNextStartOrEndElement(xmlTextReaderPtr reader);
int xmlTextReaderSkipElement(xmlTextReaderPtr reader);
xmlChar *xmlTextReaderReadEntireNodeValue(xmlTextReaderPtr reader);
/**
* Enunciate-specific interfaces and protocols.
*/
#ifndef ENUNCIATE_OBJC_TYPES
#define ENUNCIATE_OBJC_TYPES
/**
* Protocol defining an Enunciate XML I/O methods.
*/
@protocol EnunciateXML
/**
* Read an instance from XML.
*
* @param xml The XML to read.
*/
+ (id<EnunciateXML>) readFromXML: (NSData *) xml;
/**
* Write this instance as XML.
*
* @return The XML.
*/
- (NSData *) writeToXML;
@end /*protocol EnunciateXML*/
/**
* A basic XML node. Can be an element or an attribute. Used
* instead of NSXMLElement because it's not supported on all
* platforms yet.
*/
@interface JAXBBasicXMLNode : NSObject
{
@private
NSString *_name;
NSString *_ns;
NSString *_prefix;
NSString *_value;
NSArray *_childElements;
NSArray *_attributes;
}
/**
* Accessor for the (local) name of the XML node.
*
* @return The (local) name of the XML node.
*/
- (NSString *) name;
/**
* Accessor for the (local) name of the XML node.
*
* @param newName The (local) name of the XML node.
*/
- (void) setName: (NSString *) newName;
/**
* Accessor for the namespace of the XML node.
*
* @return The namespace of the XML node.
*/
- (NSString *) ns;
/**
* Accessor for the namespace of the XML node.
*
* @param newNs The namespace of the XML node.
*/
- (void) setNs: (NSString *) newNs;
/**
* Accessor for the namespace prefix of the XML node.
*
* @return The namespace prefix of the XML node.
*/
- (NSString *) prefix;
/**
* Accessor for the namespace prefix of the XML node.
*
* @param newPrefix The namespace prefix of the XML node.
*/
- (void) setPrefix: (NSString *) newPrefix;
/**
* Accessor for the value of the XML node.
*
* @return The value of the XML node.
*/
- (NSString *) value;
/**
* Accessor for the value of the XML node.
*
* @param newValue The value of the XML node.
*/
- (void) setValue: (NSString *) newValue;
/**
* Accessor for the child elements of the XML node.
*
* @return The child elements of the XML node.
*/
- (NSArray *) childElements;
/**
* Accessor for the child elements of the XML node.
*
* @param newValue The child elements of the XML node.
*/
- (void) setChildElements: (NSArray *) newChildElements;
/**
* Accessor for the attributes of the XML node.
*
* @return The attributes of the XML node.
*/
- (NSArray *) attributes;
/**
* Accessor for the attributes of the XML node.
*
* @param newAttributes The attributes of the XML node.
*/
- (void) setAttributes: (NSArray *) newAttributes;
@end /*interface JAXBBasicXMLNode*/
/**
* A basic XML node. Can be an element or an attribute. Used
* instead of NSXMLElement because it's not supported on all
* platforms yet.
*/
@interface QName : NSObject
{
@private
NSString *_localPart;
NSString *_namespaceURI;
NSString *_prefix;
}
/**
* Accessor for the local part of the QName.
*
* @return The local part of the QName.
*/
- (NSString *) localPart;
/**
* Accessor for the local part of the QName.
*
* @param newLocalPart The new local part of the QName.
*/
- (void) setLocalPart: (NSString *) newLocalPart;
/**
* Accessor for the namespace URI of the QName.
*
* @return The namespace URI of the QName.
*/
- (NSString *) namespaceURI;
/**
* Accessor for the namespace URI of the QName.
*
* @param newNamespaceURI The new namespace URI of the QName.
*/
- (void) setNamespaceURI: (NSString *) newNamespaceURI;
/**
* Accessor for the namespace prefix of the QName.
*
* @return The namespace prefix of the QName.
*/
- (NSString *) prefix;
/**
* Accessor for the namespace prefix of the QName.
*
* @param newPrefix The namespace prefix of the QName.
*/
- (void) setPrefix: (NSString *) newPrefix;
@end /*interface QName*/
#endif /* ENUNCIATE_OBJC_TYPES */
/**
* Protocol defining a JAXB (see https://jaxb.dev.java.net/) type.
*/
@protocol JAXBType
/**
* Read an XML type from an XML reader.
*
* @param reader The reader.
* @return An instance of the object defining the JAXB type.
*/
+ (id<JAXBType>) readXMLType: (xmlTextReaderPtr) reader;
/**
* Initialize the object with an XML reader.
*
* @param reader The XML reader from which to initialize the values of this type.
*/
- (id) initWithReader: (xmlTextReaderPtr) reader;
/**
* Write this instance of a JAXB type to a writer.
*
* @param writer The writer.
*/
- (void) writeXMLType: (xmlTextWriterPtr) writer;
@end /*protocol JAXBType*/
/**
* Protocol defining a JAXB (see https://jaxb.dev.java.net/) element.
*/
@protocol JAXBElement
/**
* Read the XML element from an XML reader. It is assumed
* that the reader is pointing at the start element (be careful
* that it's not still pointing to the XML document).
*
* @param reader The reader.
* @return An instance of the object defining the JAXB element.
*/
+ (id<JAXBElement>) readXMLElement: (xmlTextReaderPtr) reader;
/**
* Write this instance of a JAXB element to a writer.
*
* @param writer The writer.
*/
- (void) writeXMLElement: (xmlTextWriterPtr) writer;
/**
* Write this instance of a JAXB element to a writer.
*
* @param writer The writer.
* @param writeNs Whether to write the namespaces for this element to the xml writer.
*/
- (void) writeXMLElement: (xmlTextWriterPtr) writer writeNamespaces: (BOOL) writeNs;
@end /*protocol JAXBElement*/
/**
* Protocol defining methods for events that occur
* when reading/parsing XML. Intended for internal
* use only.
*/
@protocol JAXBReading
/**
* Method for reading an attribute.
*
* @param reader The reader pointing to the attribute.
* @return Whether the attribute was read.
*/
- (BOOL) readJAXBAttribute: (xmlTextReaderPtr) reader;
/**
* Method for reading the value of an element.
*
* @param reader The reader pointing to the element containing a value.
* @return Whether the value was read.
*/
- (BOOL) readJAXBValue: (xmlTextReaderPtr) reader;
/**
* Method for reading a child element. If (and only if) the child
* element was handled, the element in the reader should be
* "consumed" and the reader will be pointing to the end element.
*
* @param reader The reader pointing to the child element.
* @return Whether the child element was read.
*/
- (BOOL) readJAXBChildElement: (xmlTextReaderPtr) reader;
/**
* Method for reading an unknown attribute.
*
* @param reader The reader pointing to the unknown attribute.
* @return Whether the attribute was read.
*/
- (void) readUnknownJAXBAttribute: (xmlTextReaderPtr) reader;
/**
* Method for reading an unknown child element. Implementations
* must be responsible for "consuming" the child element.
*
* @param reader The reader pointing to the unknown child element.
* @return The status of the reader after having consumed the unknown child element.
*/
- (int) readUnknownJAXBChildElement: (xmlTextReaderPtr) reader;
@end /*protocol JAXBReading*/
/**
* Protocol defining methods for events that occur
* when writing XML. Intended for internal
* use only.
*/
@protocol JAXBWriting
/**
* Method for writing the attributes.
*
* @param writer The writer.
*/
- (void) writeJAXBAttributes: (xmlTextWriterPtr) writer;
/**
* Method for writing the element value.
*
* @param writer The writer.
*/
- (void) writeJAXBValue: (xmlTextWriterPtr) writer;
/**
* Method for writing the child elements.
*
* @param writer The writer.
*/
- (void) writeJAXBChildElements: (xmlTextWriterPtr) writer;
@end /*protocol JAXBWriting*/
/**
* Declaration of the JAXB type, element, events for a base object.
*/
@interface NSObject (JAXB) <JAXBType, JAXBElement, JAXBReading, JAXBWriting>
@end
/*******************boolean************************************/
/**
* Read a boolean value from the reader.
*
* @param reader The reader (pointing at a node with a value).
* @return YES if "true" was read. NO otherwise.
*/
BOOL *xmlTextReaderReadBooleanType(xmlTextReaderPtr reader);
/**
* Write a boolean value to the writer.
*
* @param writer The writer.
* @param value The value to be written.
* @return the bytes written (may be 0 because of buffering) or -1 in case of error.
*/
int xmlTextWriterWriteBooleanType(xmlTextWriterPtr writer, BOOL *value);
/*******************byte************************************/
/**
* Read a byte value from the reader.
*
* @param reader The reader (pointing at a node with a value).
* @return the byte.
*/
unsigned char *xmlTextReaderReadByteType(xmlTextReaderPtr reader);
/**
* Write a byte value to the writer.
*
* @param writer The writer.
* @param value The value to be written.
* @return the bytes written (may be 0 because of buffering) or -1 in case of error.
*/
int xmlTextWriterWriteByteType(xmlTextWriterPtr writer, unsigned char *value);
/*******************double************************************/
/**
* Read a double value from the reader.
*
* @param reader The reader (pointing at a node with a value).
* @return the double.
*/
double *xmlTextReaderReadDoubleType(xmlTextReaderPtr reader);
/**
* Write a double value to the writer.
*
* @param writer The writer.
* @param value The value to be written.
* @return the bytes written (may be 0 because of buffering) or -1 in case of error.
*/
int xmlTextWriterWriteDoubleType(xmlTextWriterPtr writer, double *value);
/*******************float************************************/
/**
* Read a float value from the reader.
*
* @param reader The reader (pointing at a node with a value).
* @return the float.
*/
float *xmlTextReaderReadFloatType(xmlTextReaderPtr reader);
/**
* Write a float value to the writer.
*
* @param writer The writer.
* @param value The value to be written.
* @return the bytes written (may be 0 because of buffering) or -1 in case of error.
*/
int xmlTextWriterWriteFloatType(xmlTextWriterPtr writer, float *value);
/*******************int************************************/
/**
* Read a int value from the reader.
*
* @param reader The reader (pointing at a node with a value).
* @param value The value to be written.
* @return the int.
*/
int *xmlTextReaderReadIntType(xmlTextReaderPtr reader);
/**
* Write a int value to the writer.
*
* @param writer The writer.
* @param value The value to be written.
* @return the bytes written (may be 0 because of buffering) or -1 in case of error.
*/
int xmlTextWriterWriteIntType(xmlTextWriterPtr writer, int *value);
/*******************long************************************/
/**
* Read a long value from the reader.
*
* @param reader The reader (pointing at a node with a value).
* @return the long.
*/
long long *xmlTextReaderReadLongType(xmlTextReaderPtr reader);
/**
* Write a long value to the writer.
*
* @param writer The writer.
* @param value The value to be written.
* @return the bytes written (may be 0 because of buffering) or -1 in case of error.
*/
int xmlTextWriterWriteLongType(xmlTextWriterPtr writer, long long *value);
/*******************short************************************/
/**
* Read a short value from the reader.
*
* @param reader The reader (pointing at a node with a value).
* @return the short.
*/
short *xmlTextReaderReadShortType(xmlTextReaderPtr reader);
/**
* Write a short value to the writer.
*
* @param writer The writer.
* @param value The value to be written.
* @return the bytes written (may be 0 because of buffering) or -1 in case of error.
*/
int xmlTextWriterWriteShortType(xmlTextWriterPtr writer, short *value);
/*******************unsigned short***************************/
/**
* Read an unsigned short value from the reader.
*
* @param reader The reader (pointing at a node with a value).
* @return the unsigned short.
*/
unsigned short *xmlTextReaderReadUnsignedShortType(xmlTextReaderPtr reader);
/**
* Write an unsigned short value to the writer.
*
* @param writer The writer.
* @param value The value to be written.
* @return the bytes written (may be 0 because of buffering) or -1 in case of error.
*/
int xmlTextWriterWriteUnsignedShortType(xmlTextWriterPtr writer, unsigned short *value);
/*******************char************************************/
/**
* Read a character value from the reader.
*
* @param reader The reader (pointing at a node with a value).
* @return the character.
*/
xmlChar *xmlTextReaderReadCharacterType(xmlTextReaderPtr reader);
/**
* Write a character value to the writer.
*
* @param writer The writer.
* @param value The value to be written.
* @return the bytes written (may be 0 because of buffering) or -1 in case of error.
*/
int xmlTextWriterWriteCharacterType(xmlTextWriterPtr writer, xmlChar *value);