Hi guys I created a new configuration based on the work on monty for the XMLParser. Please test and let us know. In PharoExtras/XMLParser and available via the configurationBrowser. I merged its package and updated the configuration as well as added catalog meta data. Now it would be great if somebody would join maintaining this package.
Thanks Monty Stef Name: ConfigurationOfXMLParser-StephaneDucasse.15 Author: StephaneDucasse Time: 24 November 2013, 6:44:05.130114 pm UUID: 4577e694-47fd-44b5-a301-78bf3a174987 Ancestors: ConfigurationOfXMLParser-DamienCassou.14 Enhancements made by Monty. These updates add validation against internal and external DTDs, proper replacement of general and parameter entites, customizable resolution of external parsed entities using Zinc and FileSystem, awareness of notations and unparsed entities, preservation of the internal DTD subset by the DOM parser (so printing a parsed doc with a DTD will produce approximately what was input), line numbers reporting in error messages, and better well-formed and validity constraints. I had to largely rewrite the tokenizer to make everything work, but I followed the spec closely, and it is about the same speed as long as there is no DTD to validate against. Another problem is that there are so many deprecated methods cluttering up classes, some of which have been deprecated for years! It is confusing and hard to see which methods to use just by browsing the protocols. I would really suggest using this code to get rid of the XML-Parser methods that have been deprecated for at least a year: expiry := 1 year. (SystemNavigation default allClassesInPackageNamed: 'XML-Parser') do: [:class | class selectors do: [:selector | | compiledMethod timeStamp | compiledMethod := class compiledMethodAt: selector. timeStamp := compiledMethod timeStamp copyAfter: Character space. (compiledMethod isDeprecated and: [(DateAndTime now - (DateAndTime fromString: timeStamp)) > expiry]) ifTrue: [class removeSelector: selector]]].
