def get_template_with_server_dependencies(xsd_string, dependencies, request=None): """Return the template with schema locations pointing to the server. Args: xsd_string: dependencies: request: Returns: """ # replace includes/imports by API calls (get dependencies starting by the imports) try: xsd_tree = update_dependencies(xsd_string, dependencies) except Exception: raise exceptions.XSDError("Something went wrong during dependency update.") # validate the schema try: error = validate_xml_schema(xsd_tree, request=request) except Exception: raise exceptions.XSDError("Something went wrong during XSD validation.") # is it a valid XML document ? if error is None: updated_xsd_string = XSDTree.tostring(xsd_tree) else: raise exceptions.XSDError(error.replace("'", "")) return updated_xsd_string
def check_xml_file_is_valid(data, request=None): """Check if xml data is valid against a given schema. Args: data: request: Returns: """ template = data.template try: xml_tree = XSDTree.build_tree(data.xml_content) except Exception as e: raise exceptions.XMLError(str(e)) try: xsd_tree = XSDTree.build_tree(template.content) except Exception as e: raise exceptions.XSDError(str(e)) error = validate_xml_data(xsd_tree, xml_tree, request=request) if error is not None: raise exceptions.XMLError(error) else: return True
def get_hash(xml_string): """Get the hash of an XML string. Args: xml_string: Returns: """ try: return xsd_hash.get_hash(xml_string) except Exception: raise exceptions.XSDError("Something wrong happened during the hashing.")
def get_template_with_server_dependencies(xsd_string, dependencies): """Return the template with schema locations pointing to the server. Args: xsd_string: dependencies: Returns: """ # replace includes/imports by API calls (get dependencies starting by the imports) try: xsd_tree = update_dependencies(xsd_string, dependencies) except Exception, e: raise exceptions.XSDError( "Something went wrong during dependency update.")
def is_schema_valid(xsd_string, *args, **kwargs): """Test if the schema is valid to be uploaded. Args: xsd_string: Returns: """ if not is_well_formed_xml(xsd_string): raise exceptions.XMLError("Uploaded file is not well formatted XML.") # Check schema support by the core errors = _check_core_support(xsd_string) if len(errors) > 0: errors_str = ", ".join(errors) raise exceptions.CoreError(errors_str) error = validate_xml_schema(XSDTree.build_tree(xsd_string), *args, **kwargs) if error is not None: raise exceptions.XSDError(error)
Returns: """ # replace includes/imports by API calls (get dependencies starting by the imports) try: xsd_tree = update_dependencies(xsd_string, dependencies) except Exception, e: raise exceptions.XSDError( "Something went wrong during dependency update.") # validate the schema try: error = validate_xml_schema(xsd_tree) except Exception, e: raise exceptions.XSDError( "Something went wrong during XSD validation.") # is it a valid XML document ? if error is None: updated_xsd_string = XSDTree.tostring(xsd_tree) else: raise exceptions.XSDError(error.replace("'", "")) return updated_xsd_string def get_hash(xml_string): """Get the hash of an XML string. Args: xml_string: