14
|
1 /**
|
|
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
|
|
3 * Authors: Jacob Carlborg
|
|
4 * Version: Initial created: Aug 3, 2009
|
|
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
|
|
6 */
|
|
7 module dstep.foundation.NSXMLParser;
|
|
8
|
|
9 import dstep.foundation.NSData;
|
|
10 import dstep.foundation.NSDictionary;
|
|
11 import dstep.foundation.NSError;
|
|
12 import dstep.foundation.NSObject;
|
|
13 import dstep.foundation.NSString;
|
|
14 import dstep.foundation.NSURL;
|
|
15 import dstep.objc.bridge.Bridge;
|
|
16 import dstep.objc.objc : id;
|
|
17
|
|
18 import bindings = dstep.foundation.NSXMLParser_bindings;
|
|
19
|
|
20 alias NSInteger NSXMLParserError;
|
|
21
|
|
22 const NSString NSXMLParserErrorDomain;
|
|
23
|
|
24 enum
|
|
25 {
|
|
26 NSXMLParserInternalError = 1,
|
|
27 NSXMLParserOutOfMemoryError = 2,
|
|
28 NSXMLParserDocumentStartError = 3,
|
|
29 NSXMLParserEmptyDocumentError = 4,
|
|
30 NSXMLParserPrematureDocumentEndError = 5,
|
|
31 NSXMLParserInvalidHexCharacterRefError = 6,
|
|
32 NSXMLParserInvalidDecimalCharacterRefError = 7,
|
|
33 NSXMLParserInvalidCharacterRefError = 8,
|
|
34 NSXMLParserInvalidCharacterError = 9,
|
|
35 NSXMLParserCharacterRefAtEOFError = 10,
|
|
36 NSXMLParserCharacterRefInPrologError = 11,
|
|
37 NSXMLParserCharacterRefInEpilogError = 12,
|
|
38 NSXMLParserCharacterRefInDTDError = 13,
|
|
39 NSXMLParserEntityRefAtEOFError = 14,
|
|
40 NSXMLParserEntityRefInPrologError = 15,
|
|
41 NSXMLParserEntityRefInEpilogError = 16,
|
|
42 NSXMLParserEntityRefInDTDError = 17,
|
|
43 NSXMLParserParsedEntityRefAtEOFError = 18,
|
|
44 NSXMLParserParsedEntityRefInPrologError = 19,
|
|
45 NSXMLParserParsedEntityRefInEpilogError = 20,
|
|
46 NSXMLParserParsedEntityRefInInternalSubsetError = 21,
|
|
47 NSXMLParserEntityReferenceWithoutNameError = 22,
|
|
48 NSXMLParserEntityReferenceMissingSemiError = 23,
|
|
49 NSXMLParserParsedEntityRefNoNameError = 24,
|
|
50 NSXMLParserParsedEntityRefMissingSemiError = 25,
|
|
51 NSXMLParserUndeclaredEntityError = 26,
|
|
52 NSXMLParserUnparsedEntityError = 28,
|
|
53 NSXMLParserEntityIsExternalError = 29,
|
|
54 NSXMLParserEntityIsParameterError = 30,
|
|
55 NSXMLParserUnknownEncodingError = 31,
|
|
56 NSXMLParserEncodingNotSupportedError = 32,
|
|
57 NSXMLParserStringNotStartedError = 33,
|
|
58 NSXMLParserStringNotClosedError = 34,
|
|
59 NSXMLParserNamespaceDeclarationError = 35,
|
|
60 NSXMLParserEntityNotStartedError = 36,
|
|
61 NSXMLParserEntityNotFinishedError = 37,
|
|
62 NSXMLParserLessThanSymbolInAttributeError = 38,
|
|
63 NSXMLParserAttributeNotStartedError = 39,
|
|
64 NSXMLParserAttributeNotFinishedError = 40,
|
|
65 NSXMLParserAttributeHasNoValueError = 41,
|
|
66 NSXMLParserAttributeRedefinedError = 42,
|
|
67 NSXMLParserLiteralNotStartedError = 43,
|
|
68 NSXMLParserLiteralNotFinishedError = 44,
|
|
69 NSXMLParserCommentNotFinishedError = 45,
|
|
70 NSXMLParserProcessingInstructionNotStartedError = 46,
|
|
71 NSXMLParserProcessingInstructionNotFinishedError = 47,
|
|
72 NSXMLParserNotationNotStartedError = 48,
|
|
73 NSXMLParserNotationNotFinishedError = 49,
|
|
74 NSXMLParserAttributeListNotStartedError = 50,
|
|
75 NSXMLParserAttributeListNotFinishedError = 51,
|
|
76 NSXMLParserMixedContentDeclNotStartedError = 52,
|
|
77 NSXMLParserMixedContentDeclNotFinishedError = 53,
|
|
78 NSXMLParserElementContentDeclNotStartedError = 54,
|
|
79 NSXMLParserElementContentDeclNotFinishedError = 55,
|
|
80 NSXMLParserXMLDeclNotStartedError = 56,
|
|
81 NSXMLParserXMLDeclNotFinishedError = 57,
|
|
82 NSXMLParserConditionalSectionNotStartedError = 58,
|
|
83 NSXMLParserConditionalSectionNotFinishedError = 59,
|
|
84 NSXMLParserExternalSubsetNotFinishedError = 60,
|
|
85 NSXMLParserDOCTYPEDeclNotFinishedError = 61,
|
|
86 NSXMLParserMisplacedCDATAEndStringError = 62,
|
|
87 NSXMLParserCDATANotFinishedError = 63,
|
|
88 NSXMLParserMisplacedXMLDeclarationError = 64,
|
|
89 NSXMLParserSpaceRequiredError = 65,
|
|
90 NSXMLParserSeparatorRequiredError = 66,
|
|
91 NSXMLParserNMTOKENRequiredError = 67,
|
|
92 NSXMLParserNAMERequiredError = 68,
|
|
93 NSXMLParserPCDATARequiredError = 69,
|
|
94 NSXMLParserURIRequiredError = 70,
|
|
95 NSXMLParserPublicIdentifierRequiredError = 71,
|
|
96 NSXMLParserLTRequiredError = 72,
|
|
97 NSXMLParserGTRequiredError = 73,
|
|
98 NSXMLParserLTSlashRequiredError = 74,
|
|
99 NSXMLParserEqualExpectedError = 75,
|
|
100 NSXMLParserTagNameMismatchError = 76,
|
|
101 NSXMLParserUnfinishedTagError = 77,
|
|
102 NSXMLParserStandaloneValueError = 78,
|
|
103 NSXMLParserInvalidEncodingNameError = 79,
|
|
104 NSXMLParserCommentContainsDoubleHyphenError = 80,
|
|
105 NSXMLParserInvalidEncodingError = 81,
|
|
106 NSXMLParserExternalStandaloneEntityError = 82,
|
|
107 NSXMLParserInvalidConditionalSectionError = 83,
|
|
108 NSXMLParserEntityValueRequiredError = 84,
|
|
109 NSXMLParserNotWellBalancedError = 85,
|
|
110 NSXMLParserExtraContentError = 86,
|
|
111 NSXMLParserInvalidCharacterInEntityError = 87,
|
|
112 NSXMLParserParsedEntityRefInInternalError = 88,
|
|
113 NSXMLParserEntityRefLoopError = 89,
|
|
114 NSXMLParserEntityBoundaryError = 90,
|
|
115 NSXMLParserInvalidURIError = 91,
|
|
116 NSXMLParserURIFragmentError = 92,
|
|
117 NSXMLParserNoDTDError = 94,
|
|
118 NSXMLParserDelegateAbortedParseError = 512
|
|
119 }
|
|
120
|
|
121 static this ()
|
|
122 {
|
|
123 NSXMLParserErrorDomain = new NSString(bindings.NSXMLParserErrorDomain);
|
|
124 }
|
|
125
|
|
126 class NSXMLParser : NSObject
|
|
127 {
|
|
128 mixin ObjcWrap;
|
|
129 mixin TNSXMLParserLocatorAdditions;
|
|
130
|
|
131 Object initWithContentsOfURL (NSURL url)
|
|
132 {
|
|
133 return invokeObjcSelf!(Object, "initWithContentsOfURL:", NSURL)(url);
|
|
134 }
|
|
135
|
|
136 this (NSURL url)
|
|
137 {
|
|
138 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
|
|
139 id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfURL:", NSURL)(objcObject, url);
|
|
140
|
|
141 if (result)
|
|
142 objcObject = ret;
|
|
143
|
|
144 dObject = this;
|
|
145 }
|
|
146
|
|
147 Object initWithData (NSData data)
|
|
148 {
|
|
149 return invokeObjcSelf!(Object, "initWithData:", NSData)(data);
|
|
150 }
|
|
151
|
|
152 this (NSData data)
|
|
153 {
|
|
154 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
|
|
155 id result = Bridge.invokeObjcMethod!(id, "initWithData:", NSData)(objcObject, data);
|
|
156
|
|
157 if (result)
|
|
158 objcObject = ret;
|
|
159
|
|
160 dObject = this;
|
|
161 }
|
|
162
|
|
163 Object delegate_ ()
|
|
164 {
|
|
165 return invokeObjcSelf!(Object, "delegate");
|
|
166 }
|
|
167
|
|
168 void setDelegate (Object delegate_)
|
|
169 {
|
|
170 return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_);
|
|
171 }
|
|
172
|
|
173 void setShouldProcessNamespaces (bool shouldProcessNamespaces)
|
|
174 {
|
|
175 return invokeObjcSelf!(void, "setShouldProcessNamespaces:", bool)(shouldProcessNamespaces);
|
|
176 }
|
|
177
|
|
178 void setShouldReportNamespacePrefixes (bool shouldReportNamespacePrefixes)
|
|
179 {
|
|
180 return invokeObjcSelf!(void, "setShouldReportNamespacePrefixes:", bool)(shouldReportNamespacePrefixes);
|
|
181 }
|
|
182
|
|
183 void setShouldResolveExternalEntities (bool shouldResolveExternalEntities)
|
|
184 {
|
|
185 return invokeObjcSelf!(void, "setShouldResolveExternalEntities:", bool)(shouldResolveExternalEntities);
|
|
186 }
|
|
187
|
|
188 bool shouldProcessNamespaces ()
|
|
189 {
|
|
190 return invokeObjcSelf!(bool, "shouldProcessNamespaces");
|
|
191 }
|
|
192
|
|
193 bool shouldReportNamespacePrefixes ()
|
|
194 {
|
|
195 return invokeObjcSelf!(bool, "shouldReportNamespacePrefixes");
|
|
196 }
|
|
197
|
|
198 bool shouldResolveExternalEntities ()
|
|
199 {
|
|
200 return invokeObjcSelf!(bool, "shouldResolveExternalEntities");
|
|
201 }
|
|
202
|
|
203 bool parse ()
|
|
204 {
|
|
205 return invokeObjcSelf!(bool, "parse");
|
|
206 }
|
|
207
|
|
208 void abortParsing ()
|
|
209 {
|
|
210 return invokeObjcSelf!(void, "abortParsing");
|
|
211 }
|
|
212
|
|
213 NSError parserError ()
|
|
214 {
|
|
215 return invokeObjcSelf!(NSError, "parserError");
|
|
216 }
|
|
217 }
|
|
218
|
|
219 template TNSXMLParserDelegateEventAdditions ()
|
|
220 {
|
|
221 void parserDidStartDocument (NSXMLParser parser);
|
|
222 void parserDidEndDocument (NSXMLParser parser);
|
|
223 void parser (NSXMLParser parser, NSString name, NSString publicID, NSString systemID);
|
|
224 void parser (NSXMLParser parser, NSString name, NSString publicID, NSString systemID, NSString notationName);
|
|
225 void parser (NSXMLParser parser, NSString attributeName, NSString elementName, NSString type, NSString defaultValue);
|
|
226 void parser (NSXMLParser parser, NSString elementName, NSString model);
|
|
227 void parser (NSXMLParser parser, NSString name, NSString value);
|
|
228 void parser (NSXMLParser parser, NSString name, NSString publicID, NSString systemID);
|
|
229 void parser (NSXMLParser parser, NSString elementName, NSString namespaceURI, NSString qName, NSDictionary attributeDict);
|
|
230 void parser (NSXMLParser parser, NSString elementName, NSString namespaceURI, NSString qName);
|
|
231 void parser (NSXMLParser parser, NSString prefix, NSString namespaceURI);
|
|
232 void parser (NSXMLParser parser, NSString prefix);
|
|
233 void parser (NSXMLParser parser, NSString string);
|
|
234 void parser (NSXMLParser parser, NSString whitespaceString);
|
|
235 void parser (NSXMLParser parser, NSString target, NSString data);
|
|
236 void parser (NSXMLParser parser, NSString comment);
|
|
237 void parser (NSXMLParser parser, NSData CDATABlock);
|
|
238 NSData parser (NSXMLParser parser, NSString name, NSString systemID);
|
|
239 void parser (NSXMLParser parser, NSError parseError);
|
|
240 void parser (NSXMLParser parser, NSError validationError);
|
|
241 }
|
|
242
|
|
243 template TNSXMLParserLocatorAdditions ()
|
|
244 {
|
|
245 NSString publicID ()
|
|
246 {
|
|
247 return invokeObjcSelf!(NSString, "publicID");
|
|
248 }
|
|
249
|
|
250 NSString systemID ()
|
|
251 {
|
|
252 return invokeObjcSelf!(NSString, "systemID");
|
|
253 }
|
|
254
|
|
255 NSInteger lineNumber ()
|
|
256 {
|
|
257 return invokeObjcSelf!(NSInteger, "lineNumber");
|
|
258 }
|
|
259
|
|
260 NSInteger columnNumber ()
|
|
261 {
|
|
262 return invokeObjcSelf!(NSInteger, "columnNumber");
|
|
263 }
|
|
264 }
|
|
265
|