/* * SoapUI, Copyright (C) 2004-2016 SmartBear Software * * Licensed under the EUPL, Version 1.1 or - as soon as they will be approved by the European Commission - subsequent * versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * * http://ec.europa.eu/idabc/eupl * * Unless required by applicable law or agreed to in writing, software distributed under the Licence is * distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the Licence for the specific language governing permissions and limitations * under the Licence. */ package com.eviware.soapui.impl.wadl.inference; import com.eviware.soapui.impl.wadl.inference.support.InferredSchemaImpl; import org.apache.xmlbeans.SchemaTypeSystem; import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlObject; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** * XML Schema inferred from gathered XML data. * * @author Dain Nilsson */ public interface InferredSchema { /** * Method for reading out the inferred schema, in its current form. * * @return The inferred schema. */ public SchemaTypeSystem getSchemaTypeSystem(); /** * Expands the inferred schema to accept the input XML as valid. * * @param xml An XmlObject that is assumed to be valid. * @throws XmlException */ public void processValidXml(XmlObject xml) throws XmlException; /** * Attempts to validate the given XML against the inferred schema. Any errors * detected will cause validation to halt and return false. * * @param xml * @return Returns true if the content validated successfully, false if not. */ public boolean validate(XmlObject xml); /** * Attempts to validate the given XML against the inferred schema. Any errors * detected need to be resolved to either expand the schema, or the input * will cause an XmlException to be thrown. * * @param xml * @param handler * @throws XmlException for validation error. */ public void learningValidate(XmlObject xml, ConflictHandler handler) throws XmlException; /** * Writes the XML represented by this InferredSchema. * * @param os * @throws IOException */ public void save(OutputStream os) throws IOException; /** * Returns a string representation of the XML Schema for a particular * namespace, if available. * * @param namespace * @return A String representation of the XML Schema describing the * namespace. */ public String getXsdForNamespace(String namespace); /** * Returns a list of inferred namespaces. * * @return A Set containing all inferred namespaces. */ public String[] getNamespaces(); /** * Static factory class for creating new instances. * * @author Dain Nilsson */ static class Factory { /** * Creates a new empty schema. * * @return A new, blank InferredSchema. */ public static InferredSchema newInstance() { return new InferredSchemaImpl(); } /** * Decodes and parses the given InputStream as a serialized * InferredSchema. * * @param is * @return An InferredSchema containing previously saved data. * @throws XmlException * @throws IOException */ public static InferredSchema parse(InputStream is) throws XmlException, IOException { return new InferredSchemaImpl(is); } } public void deleteNamespace(String ns); public SchemaTypeSystem getSchemaTypeSystem(SchemaTypeSystem schemaTypeSystem); }