42 |
: this( new StringReader( buffer ) ){ |
: this( new StringReader( buffer ) ){ |
43 |
} |
} |
44 |
|
|
45 |
public XmlRpcReader( StringReader reader ) |
public XmlRpcReader( TextReader reader ) |
46 |
{ |
{ |
47 |
structure = null; |
structure = null; |
48 |
array = null; |
array = null; |
61 |
// Open the scope |
// Open the scope |
62 |
case XmlNodeType.Element: |
case XmlNodeType.Element: |
63 |
switch( xmlReader.Name ) { |
switch( xmlReader.Name ) { |
64 |
|
case "methodResponse": |
65 |
|
node = new MethodResponseNode( xmlReader, node ); |
66 |
|
break; |
67 |
case "methodCall" : |
case "methodCall" : |
68 |
node = new MethodCallNode( xmlReader, node ); |
node = new MethodCallNode( xmlReader, node ); |
69 |
break; |
break; |
129 |
break; |
break; |
130 |
case "data": |
case "data": |
131 |
node = new DataNode( xmlReader, node ); |
node = new DataNode( xmlReader, node ); |
132 |
break; |
break; |
133 |
|
|
134 |
default: |
default: |
135 |
node = new UnknownNode( xmlReader, node ); |
node = new UnknownNode( xmlReader, node ); |
136 |
throw new XmlRpcBadFormatException( 100, "Unknown Element: " + |
//throw new XmlRpcBadFormatException( 100, "Unknown Element: " + |
137 |
xmlReader.Name, xmlReader ); |
// xmlReader.Name, xmlReader ); |
138 |
break; |
break; |
139 |
} |
} |
140 |
#if __DEBUG__ |
#if __DEBUG__ |
183 |
String.Format( "Cannot parse DateTime value: {0}, expected format is: {1}", |
String.Format( "Cannot parse DateTime value: {0}, expected format is: {1}", |
184 |
xmlReader.Value, dateFormat.UniversalSortableDateTimePattern ); |
xmlReader.Value, dateFormat.UniversalSortableDateTimePattern ); |
185 |
|
|
186 |
throw new XmlRpcBadFormatException( 100, str , xmlReader ); |
throw new XmlRpcBadFormatException( 200, str , xmlReader ); |
187 |
} |
} |
188 |
break; |
break; |
189 |
case "string": |
case "string": |
200 |
} |
} |
201 |
break; |
break; |
202 |
// anything below here should never have a value. slap and bark at user. |
// anything below here should never have a value. slap and bark at user. |
203 |
|
case "methodResponse": |
204 |
case "methodCall" : |
case "methodCall" : |
205 |
case "params": |
case "params": |
206 |
case "param": |
case "param": |
210 |
case "array": |
case "array": |
211 |
case "data": |
case "data": |
212 |
default: |
default: |
213 |
throw new XmlRpcBadFormatException( 100, "Node Does Not Set Value: " + |
throw new XmlRpcBadFormatException( 300, "Node Does Not Set Value: " + |
214 |
node.Tag, xmlReader ); |
node.Tag, xmlReader ); |
215 |
break; |
break; |
216 |
} |
} |
264 |
break; |
break; |
265 |
default: |
default: |
266 |
node = new UnknownNode( xmlReader, node ); |
node = new UnknownNode( xmlReader, node ); |
267 |
throw new XmlRpcBadFormatException( 100, "Unknown Element: " + |
throw new XmlRpcBadFormatException( 400, "Unknown Element: " + |
268 |
xmlReader.Name, xmlReader ); |
xmlReader.Name, xmlReader ); |
269 |
break; |
break; |
270 |
} |
} |
289 |
else { |
else { |
290 |
// Oh dear. This should never happen |
// Oh dear. This should never happen |
291 |
// TODO: make and throw exception |
// TODO: make and throw exception |
292 |
Console.Out.WriteLine( "Parameter BUMMER: Unknown state" ); |
Console.Out.WriteLine( "Parameter BUMMER: Unknown state {0} [structure={1}, array={2}]", o, structure, array ); |
293 |
} |
} |
294 |
} |
} |
295 |
|
|