forked from gnustep/libs-base
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add skeletal NSXML work as requested.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27824 72102866-910b-0410-8b05-ffd578937521
- Loading branch information
Showing
21 changed files
with
2,553 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
/* Interface for NSXMLDTD for GNUStep | ||
Copyright (C) 2008 Free Software Foundation, Inc. | ||
Written by: Richard Frith-Macdonald <rfm@gnu.org> | ||
Created: September 2008 | ||
This file is part of the GNUstep Base Library. | ||
This library is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU Lesser General Public | ||
License as published by the Free Software Foundation; either | ||
version 3 of the License, or (at your option) any later version. | ||
This library is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
Library General Public License for more details. | ||
You should have received a copy of the GNU Lesser General Public | ||
License along with this library; if not, write to the Free | ||
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
Boston, MA 02111 USA. | ||
*/ | ||
|
||
#ifndef __NSXMLDTD_h_GNUSTEP_BASE_INCLUDE | ||
#define __NSXMLDTD_h_GNUSTEP_BASE_INCLUDE | ||
#import <GNUstepBase/GSVersionMacros.h> | ||
|
||
#import <Foundation/NSXMLNode.h> | ||
|
||
#if defined(__cplusplus) | ||
extern "C" { | ||
#endif | ||
|
||
|
||
@class NSData, NSMutableDictionary; | ||
@class NSXMLDTDNode; | ||
|
||
/** | ||
* Encapsulates document type definition data. | ||
*/ | ||
@interface NSXMLDTD : NSXMLNode | ||
{ | ||
@private | ||
NSString *_name; | ||
NSString *_publicID; | ||
NSString *_systemID; | ||
NSArray *_children; | ||
BOOL _childrenHaveMutated; | ||
BOOL _modified; | ||
uint8_t _unused[sizeof(void*)-2]; | ||
NSMutableDictionary *_entities; | ||
NSMutableDictionary *_elements; | ||
NSMutableDictionary *_notations; | ||
NSMutableDictionary *_attributes; | ||
NSString *_original; | ||
} | ||
|
||
/** | ||
* Adds a child after the existing children. | ||
*/ | ||
- (void) addChild: (NSXMLNode*)child; | ||
|
||
/** | ||
* Returns the attribute declaration named. | ||
*/ | ||
- (NSXMLDTDNode*) attributeDeclarationForName: (NSString*)name | ||
elementName: (NSString*)elementName; | ||
|
||
/** | ||
* Returns the element declaration named. | ||
*/ | ||
- (NSXMLDTDNode*) elementDeclarationForName: (NSString*)name; | ||
|
||
/** | ||
* Returns the entity declaration named. | ||
*/ | ||
- (NSXMLDTDNode*) entityDeclarationForName: (NSString*)name; | ||
|
||
/** Load data from URL and initialise the receiver with the contents. | ||
*/ | ||
- (id) initWithContentsOfURL: (NSURL*)url | ||
options: (NSUInteger)mask | ||
error: (NSError**)error; | ||
|
||
/** <init /> | ||
*/ | ||
- (id) initWithData: (NSData*)data | ||
options: (NSUInteger)mask | ||
error: (NSError**)error; | ||
|
||
/** | ||
* Inserts a child node at the specified index in the document. | ||
*/ | ||
- (void) insertChild: (NSXMLNode*)child atIndex: (NSUInteger)index; | ||
|
||
/** | ||
* Inserts a number of child nodes at the specified index. | ||
*/ | ||
- (void) insertChildren: (NSArray*)children atIndex: (NSUInteger)index; | ||
|
||
/** | ||
* Returns the notation declaration named. | ||
*/ | ||
- (NSXMLDTDNode*) notationDeclarationForName: (NSString*)name; | ||
|
||
/** | ||
* Returns the predefined entity declaration matching named. | ||
*/ | ||
+ (NSXMLDTDNode*) predefinedEntityDeclarationForName: (NSString*)name; | ||
|
||
/** | ||
* Returns the public ID set for the document. | ||
*/ | ||
- (NSString*) publicID; | ||
|
||
/** | ||
* Remove the indexed child node. | ||
*/ | ||
- (void) removeChildAtIndex: (NSUInteger)index; | ||
|
||
/** | ||
* Replaces the child at index with another child. | ||
*/ | ||
- (void) replaceChildAtIndex: (NSUInteger)index withNode: (NSXMLNode*)node; | ||
|
||
/** | ||
* Replaces all existing children with the child nodes in the array. | ||
*/ | ||
- (void) setChildren: (NSArray*)children; | ||
|
||
/** | ||
* Sets the public id of this document.<br /> | ||
* This identifier should be in the default catalog or in a location | ||
* given by the XML_CATALOG_FILES environment variable.<br /> | ||
* You should also set the systemID when you set this. | ||
*/ | ||
- (void) setPublicID: (NSString*)publicID; | ||
|
||
/** | ||
* Sets the system ID ... a URL referring to the DTD document. | ||
*/ | ||
- (void) setSystemID: (NSString*)systemID; | ||
|
||
/** | ||
* Returns the system ID | ||
*/ | ||
- (NSString*) systemID; | ||
|
||
@end | ||
|
||
#if defined(__cplusplus) | ||
} | ||
#endif | ||
|
||
#endif /*__NSXMLDTD_GNUSTEP_BASE_INCLUDE */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
/* Interface for NSXMLDTDNode for GNUStep | ||
Copyright (C) 2008 Free Software Foundation, Inc. | ||
Written by: Richard Frith-Macdonald <rfm@gnu.org> | ||
Created: September 2008 | ||
This file is part of the GNUstep Base Library. | ||
This library is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU Lesser General Public | ||
License as published by the Free Software Foundation; either | ||
version 3 of the License, or (at your option) any later version. | ||
This library is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
Library General Public License for more details. | ||
You should have received a copy of the GNU Lesser General Public | ||
License along with this library; if not, write to the Free | ||
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
Boston, MA 02111 USA. | ||
*/ | ||
|
||
#ifndef __NSXMLDTDNode_h_GNUSTEP_BASE_INCLUDE | ||
#define __NSXMLDTDNode_h_GNUSTEP_BASE_INCLUDE | ||
#import <GNUstepBase/GSVersionMacros.h> | ||
|
||
#import <Foundation/NSXMLNode.h> | ||
|
||
#if defined(__cplusplus) | ||
extern "C" { | ||
#endif | ||
|
||
/** | ||
* The kind of DTD node. | ||
*/ | ||
enum { | ||
NSXMLEntityGeneralKind = 1, | ||
NSXMLEntityParsedKind, | ||
NSXMLEntityUnparsedKind, | ||
NSXMLEntityParameterKind, | ||
NSXMLEntityPredefined, | ||
NSXMLAttributeCDATAKind, | ||
NSXMLAttributeIDKind, | ||
NSXMLAttributeIDRefKind, | ||
NSXMLAttributeIDRefsKind, | ||
NSXMLAttributeEntityKind, | ||
NSXMLAttributeEntitiesKind, | ||
NSXMLAttributeNMTokenKind, | ||
NSXMLAttributeNMTokensKind, | ||
NSXMLAttributeEnumerationKind, | ||
NSXMLAttributeNotationKind, | ||
NSXMLElementDeclarationUndefinedKind, | ||
NSXMLElementDeclarationEmptyKind, | ||
NSXMLElementDeclarationAnyKind, | ||
NSXMLElementDeclarationMixedKind, | ||
NSXMLElementDeclarationElementKind | ||
}; | ||
typedef NSUInteger NSXMLDTDNodeKind; | ||
|
||
/** | ||
* Represents the nodes whose types are present only in DTDs.<br /> | ||
* Object values for the different nodes are: | ||
* <deflist> | ||
* <term>Entity declaration</term> | ||
* <desc>The string that that entity resolves to eg "<"</desc> | ||
* <term>Attribute declaration</term> | ||
* <desc>The default value, if any</desc> | ||
* <term>Element declaration</term> | ||
* <desc>The validation string</desc> | ||
* <term>Notation declaration</term> | ||
* <desc>nil</desc> | ||
* </deflist> | ||
*/ | ||
@interface NSXMLDTDNode : NSXMLNode | ||
{ | ||
@protected | ||
NSXMLDTDNodeKind _DTDKind; | ||
NSString *_name; | ||
NSString *_notationName; | ||
NSString *_publicID; | ||
NSString *_systemID; | ||
} | ||
|
||
/** | ||
* Returns what kind of DTD node this is. | ||
*/ | ||
- (NSXMLDTDNodeKind) DTDKind; | ||
|
||
/** <init /> | ||
* Initialises the receiver based on the contents of the supplied XML. | ||
*/ | ||
- (id) initWithXMLString: (NSString*)string; | ||
|
||
/** | ||
* Returns YES if the system id is set, NO otherwise.<br /> | ||
* Is valid only for entities and notations. | ||
*/ | ||
- (BOOL) isExternal; | ||
|
||
/** | ||
* Returns the notation name. | ||
*/ | ||
- (NSString*) notationName; | ||
|
||
/** | ||
* Returns the public id. | ||
*/ | ||
- (NSString*) publicID; | ||
|
||
/** | ||
* Sets what kind of DTD node this is. | ||
*/ | ||
- (void) setDTDKind: (NSXMLDTDNodeKind)kind; | ||
|
||
/** | ||
* Sets the notation name if the receiver is an entity. | ||
*/ | ||
- (void) setNotationName: (NSString*)notationName; | ||
|
||
/** | ||
* Sets the public id of this node.<br /> | ||
* This identifier should be in the default catalog or in a location | ||
* given by the XML_CATALOG_FILES environment variable.<br /> | ||
* When the public id is set the system id must also be set.<br /> | ||
* This is valid only for entities and notations. | ||
*/ | ||
- (void) setPublicID: (NSString*)publicID; | ||
|
||
/** | ||
* Sets the system ID ... a URL referring to the DTD document. | ||
*/ | ||
- (void) setSystemID: (NSString*)systemID; | ||
|
||
/** | ||
* Returns the system ID. | ||
*/ | ||
- (NSString*) systemID; | ||
|
||
@end | ||
|
||
|
||
#if defined(__cplusplus) | ||
} | ||
#endif | ||
|
||
#endif /*__NSXMLDTDNode_h_GNUSTEP_BASE_INCLUDE */ |
Oops, something went wrong.