+++ /dev/null
-/*
- * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-/* CFXMLNode.h
- Copyright (c) 1998-2005, Apple, Inc. All rights reserved.
-*/
-
-#if !defined(__COREFOUNDATION_CFXMLNODE__)
-#define __COREFOUNDATION_CFXMLNODE__ 1
-
-#include <CoreFoundation/CFArray.h>
-#include <CoreFoundation/CFDictionary.h>
-#include <CoreFoundation/CFString.h>
-#include <CoreFoundation/CFTree.h>
-#include <CoreFoundation/CFURL.h>
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-enum {
- kCFXMLNodeCurrentVersion = 1
-};
-
-typedef const struct __CFXMLNode * CFXMLNodeRef;
-typedef CFTreeRef CFXMLTreeRef;
-
-/* An CFXMLNode describes an individual XML construct - like a tag, or a comment, or a string
- of character data. Each CFXMLNode contains 3 main pieces of information - the node's type,
- the data string, and a pointer to an additional data structure. The node's type ID is an enum
- value of type CFXMLNodeTypeID. The data string is always a CFStringRef; the meaning of the
- string is dependent on the node's type ID. The format of the additional data is also dependent
- on the node's type; in general, there is a custom structure for each type that requires
- additional data. See below for the mapping from type ID to meaning of the data string and
- structure of the additional data. Note that these structures are versioned, and may change
- as the parser changes. The current version can always be identified by kCFXMLNodeCurrentVersion;
- earlier versions can be identified and used by passing earlier values for the version number
- (although the older structures would have been removed from the header).
-
- An CFXMLTree is simply a CFTree whose context data is known to be an CFXMLNodeRef. As
- such, an CFXMLTree can be used to represent an entire XML document; the CFTree
- provides the tree structure of the document, while the CFXMLNodes identify and describe
- the nodes of the tree. An XML document can be parsed to a CFXMLTree, and a CFXMLTree
- can generate the data for the equivalent XML document - see CFXMLParser.h for more
- information on parsing XML.
- */
-
-/* Type codes for the different possible XML nodes; this list may grow.*/
-typedef enum {
- kCFXMLNodeTypeDocument = 1,
- kCFXMLNodeTypeElement = 2,
- kCFXMLNodeTypeAttribute = 3,
- kCFXMLNodeTypeProcessingInstruction = 4,
- kCFXMLNodeTypeComment = 5,
- kCFXMLNodeTypeText = 6,
- kCFXMLNodeTypeCDATASection = 7,
- kCFXMLNodeTypeDocumentFragment = 8,
- kCFXMLNodeTypeEntity = 9,
- kCFXMLNodeTypeEntityReference = 10,
- kCFXMLNodeTypeDocumentType = 11,
- kCFXMLNodeTypeWhitespace = 12,
- kCFXMLNodeTypeNotation = 13,
- kCFXMLNodeTypeElementTypeDeclaration = 14,
- kCFXMLNodeTypeAttributeListDeclaration = 15
-} CFXMLNodeTypeCode;
-
-typedef struct {
- CFDictionaryRef attributes;
- CFArrayRef attributeOrder;
- Boolean isEmpty;
- char _reserved[3];
-} CFXMLElementInfo;
-
-typedef struct {
- CFStringRef dataString;
-} CFXMLProcessingInstructionInfo;
-
-typedef struct {
- CFURLRef sourceURL;
- CFStringEncoding encoding;
-} CFXMLDocumentInfo;
-
-typedef struct {
- CFURLRef systemID;
- CFStringRef publicID;
-} CFXMLExternalID;
-
-typedef struct {
- CFXMLExternalID externalID;
-} CFXMLDocumentTypeInfo;
-
-typedef struct {
- CFXMLExternalID externalID;
-} CFXMLNotationInfo;
-
-typedef struct {
- /* This is expected to change in future versions */
- CFStringRef contentDescription;
-} CFXMLElementTypeDeclarationInfo;
-
-typedef struct {
- /* This is expected to change in future versions */
- CFStringRef attributeName;
- CFStringRef typeString;
- CFStringRef defaultString;
-} CFXMLAttributeDeclarationInfo;
-
-typedef struct {
- CFIndex numberOfAttributes;
- CFXMLAttributeDeclarationInfo *attributes;
-} CFXMLAttributeListDeclarationInfo;
-
-typedef enum {
- kCFXMLEntityTypeParameter, /* Implies parsed, internal */
- kCFXMLEntityTypeParsedInternal,
- kCFXMLEntityTypeParsedExternal,
- kCFXMLEntityTypeUnparsed,
- kCFXMLEntityTypeCharacter
-} CFXMLEntityTypeCode;
-
-typedef struct {
- CFXMLEntityTypeCode entityType;
- CFStringRef replacementText; /* NULL if entityType is external or unparsed */
- CFXMLExternalID entityID; /* entityID.systemID will be NULL if entityType is internal */
- CFStringRef notationName; /* NULL if entityType is parsed */
-} CFXMLEntityInfo;
-
-typedef struct {
- CFXMLEntityTypeCode entityType;
-} CFXMLEntityReferenceInfo;
-
-/*
- dataTypeCode meaning of dataString format of infoPtr
- =========== ===================== =================
- kCFXMLNodeTypeDocument <currently unused> CFXMLDocumentInfo *
- kCFXMLNodeTypeElement tag name CFXMLElementInfo *
- kCFXMLNodeTypeAttribute <currently unused> <currently unused>
- kCFXMLNodeTypeProcessingInstruction name of the target CFXMLProcessingInstructionInfo *
- kCFXMLNodeTypeComment text of the comment NULL
- kCFXMLNodeTypeText the text's contents NULL
- kCFXMLNodeTypeCDATASection text of the CDATA NULL
- kCFXMLNodeTypeDocumentFragment <currently unused> <currently unused>
- kCFXMLNodeTypeEntity name of the entity CFXMLEntityInfo *
- kCFXMLNodeTypeEntityReference name of the referenced entity CFXMLEntityReferenceInfo *
- kCFXMLNodeTypeDocumentType name given as top-level element CFXMLDocumentTypeInfo *
- kCFXMLNodeTypeWhitespace text of the whitespace NULL
- kCFXMLNodeTypeNotation notation name CFXMLNotationInfo *
- kCFXMLNodeTypeElementTypeDeclaration tag name CFXMLElementTypeDeclarationInfo *
- kCFXMLNodeTypeAttributeListDeclaration tag name CFXMLAttributeListDeclarationInfo *
-*/
-
-CF_EXPORT
-CFTypeID CFXMLNodeGetTypeID(void);
-
-/* Creates a new node based on xmlType, dataString, and additionalInfoPtr. version (together with xmlType) determines the expected structure of additionalInfoPtr */
-CF_EXPORT
-CFXMLNodeRef CFXMLNodeCreate(CFAllocatorRef alloc, CFXMLNodeTypeCode xmlType, CFStringRef dataString, const void *additionalInfoPtr, CFIndex version);
-
-/* Creates a copy of origNode (which may not be NULL). */
-CF_EXPORT
-CFXMLNodeRef CFXMLNodeCreateCopy(CFAllocatorRef alloc, CFXMLNodeRef origNode);
-
-CF_EXPORT
-CFXMLNodeTypeCode CFXMLNodeGetTypeCode(CFXMLNodeRef node);
-
-CF_EXPORT
-CFStringRef CFXMLNodeGetString(CFXMLNodeRef node);
-
-CF_EXPORT
-const void *CFXMLNodeGetInfoPtr(CFXMLNodeRef node);
-
-CF_EXPORT
-CFIndex CFXMLNodeGetVersion(CFXMLNodeRef node);
-
-/* CFXMLTreeRef */
-
-/* Creates a childless, parentless tree from node */
-CF_EXPORT
-CFXMLTreeRef CFXMLTreeCreateWithNode(CFAllocatorRef allocator, CFXMLNodeRef node);
-
-/* Extracts and returns the node stored in xmlTree */
-CF_EXPORT
-CFXMLNodeRef CFXMLTreeGetNode(CFXMLTreeRef xmlTree);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* ! __COREFOUNDATION_CFXMLNODE__ */
-