def validate_xml(self, xmlfile, xsdfile):
     """
     This method will be used on a server side to validate and process the xml file with 
     an existing xsd schema. If xml is not well-formed or doesn't match the schema, false is returned 
     """        
     try:
         xsdfileText = open(xsdfile, 'r')
         xsdFileInput = xsdfileText.read()
         filteredXMLText = re.sub("&", "&", xmlfile)
         xsv.parseAndValidateString(filteredXMLText, xsdFileInput, xmlIfClass=xsv.XMLIF_ELEMENTTREE)  
         return True
     except xsv.xsvalErrorHandler.XsvalError: 
         return False
     except ET.ExpatError:
         return False         
     except ParseError:
         return False
     except IncorrectArticleReferenceException:
         return False
	def test_createModels1(self):
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("people"))	
		somePerson =  db.get(db.Key.from_path("Person", "george-w-bush"))
		self.assert_(somePerson.name == "George W. Bush")
		self.assert_(somePerson.alternate_names == "GWB")
		self.assert_(len(somePerson.description) > 0)
		self.assert_(somePerson.country == "USA")
		self.assert_("President" in somePerson.category)
	def test_createModels3(self):
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("crises"))	
		someCrisis =  db.get(db.Key.from_path("Crisis", "beslan-school-siege"))
		self.assert_("Beslan" in someCrisis.name)
		self.assert_(len(someCrisis.description)>0)
		self.assert_(someCrisis.country == "Russian Federation")
		self.assert_(someCrisis.category.lower() == "terrorist attack")
		self.assert_(someCrisis.deaths > 0)
	def setUp(self):
		self.x = XMLUploadWorker()
		self.handler = ExportHandler()
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test2.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("people"))	
		self.x.createModels(root.find("crises"))	
		self.x.createModels(root.find("organizations"))	
		
		self.x.createLinks(root.find("crises"), False)
		self.x.createLinks(root.find("people"), False)
		self.x.createLinks(root.find("organizations"), False)
	def test_createModels2(self):
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("organizations"))	
		someOrganization =  db.get(db.Key.from_path("Organization", "nyfd"))
		self.assert_(someOrganization.name == "New York City Fire Department")
		self.assert_(someOrganization.description[:11] == "The origins")
		self.assert_(someOrganization.country == "USA")
		self.assert_(someOrganization.state == "NY")
		self.assert_(someOrganization.city == "Staten Island")
		self.assert_(someOrganization.email == "*****@*****.**")
		self.assert_(someOrganization.phone == "911")
		self.assert_("FDNY" in someOrganization.social_facebook)
	def test_createLinks2(self):
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("people"))	
		self.x.createModels(root.find("crises"))	
		self.x.createModels(root.find("organizations"))	
		
		self.x.createLinks(root.find("organizations"), False)
		someOrganization =  db.get(db.Key.from_path("Organization", "nyfd"))
		somePerson = db.get(someOrganization.person_link[0])
		self.assert_(somePerson.name == "George W. Bush")
		self.assert_(somePerson.alternate_names == "GWB")
		self.assert_(somePerson.description[:30] == "The airborne terrorist attacks")
		self.assert_(somePerson.country == "USA")
		self.assert_("President" in somePerson.category)
	def test_createLinks1(self):
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("people"))	
		self.x.createModels(root.find("crises"))	
		self.x.createModels(root.find("organizations"))
		
		self.x.createLinks(root.find("people"), False)
		somePerson =  db.get(db.Key.from_path("Person", "vladimir-putin"))
		someCrisis = db.get(somePerson.crisis_link[0])
		self.assert_("Beslan" in someCrisis.name)
		self.assert_(len(someCrisis.description)>0)
		self.assert_(someCrisis.country == "Russian Federation")
		self.assert_(someCrisis.category.lower() == "terrorist attack")
		self.assert_(someCrisis.deaths > 0)
	def setUp(self):
		# First, create an instance of the Testbed class.
		self.testbed = testbed.Testbed()
   	  	self.testbed.activate()
   	 	self.testbed.init_datastore_v3_stub()
		self.testbed.init_memcache_stub()
		
		self.handler = ArticleHandler()
		self.x = XMLUploadWorker()
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test2.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("people"))	
		self.x.createModels(root.find("crises"))	
		self.x.createModels(root.find("organizations"))	
		
		self.x.createLinks(root.find("crises"), False)
		self.x.createLinks(root.find("people"), False)
		self.x.createLinks(root.find("organizations"), False)
	def test_createLinks3(self):
		xsdFileInput = open("test/test.xsd", 'r')
		xmlfile = open('test/test.xml','r')
		xmleval = xsv.parseAndValidateString(re.sub('&', '&', xmlfile.read()), xsdFileInput.read(), xmlIfClass=xsv.XMLIF_ELEMENTTREE)
		etree = xmleval.getTree()
		root = etree.getroot()
		self.x.createModels(root.find("people"))	
		self.x.createModels(root.find("crises"))	
		self.x.createModels(root.find("organizations"))	
		
		self.x.createLinks(root.find("crises"), False)
		someCrisis =  db.get(db.Key.from_path("Crisis", "september11"))
		someOrganization = db.get(someCrisis.organization_link[0])
		self.assert_(someOrganization.name == "New York City Fire Department")
		self.assert_(len(someCrisis.description)>0)
		self.assert_(someOrganization.country == "USA")
		self.assert_(someOrganization.state == "NY")
		self.assert_(someOrganization.city == "Staten Island")
		self.assert_(someOrganization.email == "*****@*****.**")
		self.assert_(someOrganization.phone == "911")
		self.assert_("FDNY" in someOrganization.social_facebook)