# HG changeset patch # User IBBoard # Date 1237063634 0 # Node ID 6b9d37f14a14c80bef65ff21c03a6d38928460c6 # Parent 457c9357dd645f30cb6d4de1358cfaad5c227c28 Re #32 - Migrate to schemas * Remove unused method that was still validating by DTD * Collapse Cats schema in to one nested structure System files are failing to validate because: Problem validating against schema for WarFoundry data: XmlSchema error: Invalid start element: http://ibboard.co.uk/warfoundry/system:cat XML Line 4, Position 4. which is a tag, which should match the Cat schema definition. Removing the tags results in a different error about the end tag being unexpected because of missing content. diff -r 457c9357dd64 -r 6b9d37f14a14 api/Factories/Xml/WarFoundryXmlFactory.cs --- a/api/Factories/Xml/WarFoundryXmlFactory.cs Sat Mar 14 20:38:16 2009 +0000 +++ b/api/Factories/Xml/WarFoundryXmlFactory.cs Sat Mar 14 20:47:14 2009 +0000 @@ -325,38 +325,6 @@ private void ValidationEventMethod(object sender, ValidationEventArgs e) { throw new InvalidDataException("Problem validating against schema for WarFoundry data: " + e.Exception.Message, e.Exception); - } - - protected XmlDocument CreateXmlDocumentFromString(string xmlString) - { - XmlReaderSettings settings = new XmlReaderSettings(); - settings.XmlResolver = xmlResolver; - settings.ValidationType = ValidationType.DTD; - settings.ProhibitDtd = false; - settings.ValidationEventHandler+= new ValidationEventHandler(ValidationEventMethod); - XmlReader reader = XmlReader.Create(new MemoryStream(Encoding.UTF8.GetBytes(xmlString)), settings); - XmlDocument doc = new XmlDocument(); - - try - { - doc.Load(reader); - } - catch(XmlSchemaException ex) - { - throw new InvalidFileException(Translation.GetTranslation("ErrorInvalidXmlString", "Failed to parse invalid XML string"), ex); - } - finally - { - //We might not need to make sure the memory stream is closed, but do it just in case - reader.Close(); - } - - if (doc.ChildNodes.Count!=3) - { - throw new InvalidFileException(String.Format(Translation.GetTranslation("ErrorInvalidXmlFile", "XML string was not a valid XML file. It should contain three child nodes - XML definition, DocType and root node."))); - } - - return doc; } private WarFoundryObject CreateObjectFromElement(XmlElement elem) diff -r 457c9357dd64 -r 6b9d37f14a14 dtds/warfoundry-cats.xsd --- a/dtds/warfoundry-cats.xsd Sat Mar 14 20:38:16 2009 +0000 +++ b/dtds/warfoundry-cats.xsd Sat Mar 14 20:47:14 2009 +0000 @@ -3,15 +3,16 @@ xmlns="http://ibboard.co.uk/warfoundry/cats" elementFormDefault="qualified"> - + + + + + + + + + + - - - - - - - - \ No newline at end of file