- Timestamp:
- 03/18/09 14:51:38 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/New Persistence Exploration/Persistence/Persistence/XmlParser.cs
r1339 r1355 6 6 7 7 namespace Persistence { 8 9 8 10 public class XmlParser : IEnumerable<IParseToken> { 9 11 … … 52 54 yield return new Primitive( 53 55 reader.GetAttribute("name"), 54 Type.GetType(reader.GetAttribute("type")),56 reader.GetAttribute("typeId"), 55 57 reader.ReadString(), 56 58 id); … … 58 60 private IEnumerator<IParseToken> ParseComposite() { 59 61 string name = reader.GetAttribute("name"); 60 Type type = Type.GetType(reader.GetAttribute("type"));62 string typeId = reader.GetAttribute("typeId"); 61 63 string idString = reader.GetAttribute("id"); 62 64 int? id = null; 63 65 if (idString != null) 64 66 id = int.Parse(idString); 65 yield return new CompositeStart(name, type , id);67 yield return new CompositeStart(name, typeId, id); 66 68 IEnumerator<IParseToken> iterator = GetEnumerator(); 67 69 while (iterator.MoveNext()) 68 70 yield return iterator.Current; 69 yield return new CompositeEnd(name, type , id);71 yield return new CompositeEnd(name, typeId, id); 70 72 } 71 73 private IEnumerator<IParseToken> ParseReference() { … … 80 82 return GetEnumerator(); 81 83 } 84 public static Dictionary<string, int> ParseTypeCache(TextReader reader) { 85 Dictionary<string, int> typeCache = new Dictionary<string, int>(); 86 XmlReader xmlReader = XmlReader.Create(reader); 87 while ( xmlReader.Read() ) { 88 if (xmlReader.Name == "TYPE") { 89 typeCache.Add(xmlReader.GetAttribute("name") 90 , int.Parse(xmlReader.GetAttribute("id"))); 91 } 92 } 93 return typeCache; 94 } 82 95 } 83 96 }
Note: See TracChangeset
for help on using the changeset viewer.