/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.camel.component.xmlsecurity.springboot; import java.util.List; import java.util.Map; import javax.annotation.Generated; import javax.xml.crypto.AlgorithmMethod; import javax.xml.crypto.KeySelector; import javax.xml.crypto.URIDereferencer; import javax.xml.crypto.dsig.spec.XPathFilterParameterSpec; import org.apache.camel.CamelContext; import org.apache.camel.component.xmlsecurity.api.KeyAccessor; import org.apache.camel.component.xmlsecurity.api.ValidationFailedHandler; import org.apache.camel.component.xmlsecurity.api.XmlSignature2Message; import org.apache.camel.component.xmlsecurity.api.XmlSignatureChecker; import org.apache.camel.component.xmlsecurity.api.XmlSignatureProperties; import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon; import org.springframework.boot.context.properties.ConfigurationProperties; /** * Used to sign and verify exchanges using the XML signature specification. * * Generated by camel-package-maven-plugin - do not edit this file! */ @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") @ConfigurationProperties(prefix = "camel.component.xmlsecurity") public class XmlSignatureComponentConfiguration extends ComponentConfigurationPropertiesCommon { /** * To use a shared XmlSignerConfiguration configuration to use as base for * configuring endpoints. */ private XmlSignerConfigurationNestedConfiguration signerConfiguration; /** * To use a shared XmlVerifierConfiguration configuration to use as base for * configuring endpoints. */ private XmlVerifierConfigurationNestedConfiguration verifierConfiguration; /** * Whether the component should resolve property placeholders on itself when * starting. Only properties which are of String type can use property * placeholders. */ private Boolean resolvePropertyPlaceholders = true; public XmlSignerConfigurationNestedConfiguration getSignerConfiguration() { return signerConfiguration; } public void setSignerConfiguration( XmlSignerConfigurationNestedConfiguration signerConfiguration) { this.signerConfiguration = signerConfiguration; } public XmlVerifierConfigurationNestedConfiguration getVerifierConfiguration() { return verifierConfiguration; } public void setVerifierConfiguration( XmlVerifierConfigurationNestedConfiguration verifierConfiguration) { this.verifierConfiguration = verifierConfiguration; } public Boolean getResolvePropertyPlaceholders() { return resolvePropertyPlaceholders; } public void setResolvePropertyPlaceholders( Boolean resolvePropertyPlaceholders) { this.resolvePropertyPlaceholders = resolvePropertyPlaceholders; } public static class XmlSignerConfigurationNestedConfiguration { public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.xmlsecurity.processor.XmlSignerConfiguration.class; private CamelContext camelContext; /** * For the signing process, a private key is necessary. You specify a * key accessor bean which provides this private key. The key accessor * bean must implement the KeyAccessor interface. The package * org.apache.camel.component.xmlsecurity.api contains the default * implementation class DefaultKeyAccessor which reads the private key * from a Java keystore. */ private KeyAccessor keyAccessor; /** * Canonicalization method used to canonicalize the SignedInfo element * before the digest is calculated. You can use the helper methods * XmlSignatureHelper.getCanonicalizationMethod(String algorithm) or * getCanonicalizationMethod(String algorithm, List<String> * inclusiveNamespacePrefixes) to create a canonicalization method. */ private AlgorithmMethod canonicalizationMethod; /** * Transforms which are executed on the message body before the digest * is calculated. By default, C14n is added and in the case of enveloped * signature (see option parentLocalName) also * http://www.w3.org/2000/09/xmldsig#enveloped-signature is added at * position 0 of the list. Use methods in XmlSignatureHelper to create * the transform methods. */ private List transformMethods; /** * Signature algorithm. Default value is * "http://www.w3.org/2000/09/xmldsig#rsa-sha1". */ private String signatureAlgorithm = "http://www.w3.org/2000/09/xmldsig#rsa-sha1"; /** * Digest algorithm URI. Optional parameter. This digest algorithm is * used for calculating the digest of the input message. If this digest * algorithm is not specified then the digest algorithm is calculated * from the signature algorithm. Example: * "http://www.w3.org/2001/04/xmlenc#sha256" */ private String digestAlgorithm; /** * In order to protect the KeyInfo element from tampering you can add a * reference to the signed info element so that it is protected via the * signature value. The default value is <tt>true</tt>. * <p> * Only relevant when a KeyInfo is returned by {@link KeyAccessor} . and * {@link KeyInfo#getId()} is not <code>null</code>. */ private Boolean addKeyInfoReference = true; /** * Namespace prefix for the XML signature namespace * "http://www.w3.org/2000/09/xmldsig#". Default value is "ds". If * <code>null</code> or an empty value is set then no prefix is used for * the XML signature namespace. * <p> * See best practice * http://www.w3.org/TR/xmldsig-bestpractices/#signing-xml- * without-namespaces * * @param prefixForXmlSignatureNamespaceprefix */ private String prefixForXmlSignatureNamespace = "ds"; /** * Local name of the parent element to which the XML signature element * will be added. Only relevant for enveloped XML signature. * Alternatively you can also use * {@link #setParentXpath(XPathFilterParameterSpec)} . * <p> * Default value is <code>null</code>. The value must be * <code>null</code> for enveloping and detached XML signature. * <p> * This parameter or the parameter * {@link #setParentXpath(XPathFilterParameterSpec)} for enveloped * signature and the parameter {@link #setXpathsToIdAttributes(List)} * for detached signature must not be set in the same configuration. * <p> * If the parameters <tt>parentXpath</tt> and <tt>parentLocalName</tt> * are specified in the same configuration then an exception is thrown. * * @param parentLocalNamelocal * name */ private String parentLocalName; /** * Namespace of the parent element to which the XML signature element * will be added. */ private String parentNamespace; /** * Sets the content object Id attribute value. By default a UUID is * generated. If you set the <code>null</code> value, then a new UUID * will be generated. Only used in the enveloping case. */ private String contentObjectId; /** * Sets the signature Id. If this parameter is not set (null value) then * a unique ID is generated for the signature ID (default). If this * parameter is set to "" (empty string) then no Id attribute is created * in the signature element. */ private String signatureId; /** * Reference URI for the content to be signed. Only used in the * enveloped case. If the reference URI contains an ID attribute value, * then the resource schema URI ( {@link #setSchemaResourceUri(String)} * ) must also be set because the schema validator will then find out * which attributes are ID attributes. Will be ignored in the enveloping * or detached case. */ private String contentReferenceUri; /** * Type of the content reference. The default value is <code>null</code> * . This value can be overwritten by the header * {@link XmlSignatureConstants#HEADER_CONTENT_REFERENCE_TYPE} . */ private String contentReferenceType; /** * Indicator whether the message body contains plain text. The default * value is <code>false</code>, indicating that the message body * contains XML. The value can be overwritten by the header * {@link XmlSignatureConstants#HEADER_MESSAGE_IS_PLAIN_TEXT} . */ private Boolean plainText = false; /** * Encoding of the plain text. Only relevant if the message body is * plain text (see parameter {@link #plainText} . Default value is * "UTF-8". */ private String plainTextEncoding = "UTF-8"; /** * For adding additional References and Objects to the XML signature * which contain additional properties, you can provide a bean which * implements the XmlSignatureProperties interface. */ private XmlSignatureProperties properties; private String keyAccessorName; private String canonicalizationMethodName; private String transformMethodsName; private String propertiesName; /** * Define the elements which are signed in the detached case via XPATH * expressions to ID attributes (attributes of type ID). For each * element found via the XPATH expression a detached signature is * created whose reference URI contains the corresponding attribute * value (preceded by '#'). The signature becomes the last sibling of * the signed element. Elements with deeper hierarchy level are signed * first. * <p> * You can also set the XPATH list dynamically via the header * {@link XmlSignatureConstants#HEADER_XPATHS_TO_ID_ATTRIBUTES} . * <p> * The parameter {@link #setParentLocalName(String)} or * {@link #setParentXpath(XPathFilterParameterSpec)} for enveloped * signature and this parameter for detached signature must not be set * in the same configuration. */ private List xpathsToIdAttributes; /** * Sets the XPath to find the parent node in the enveloped case. Either * you specify the parent node via this method or the local name and * namespace of the parent with the methods * {@link #setParentLocalName(String)} and * {@link #setParentNamespace(String)} . * <p> * Default value is <code>null</code>. The value must be * <code>null</code> for enveloping and detached XML signature. * <p> * If the parameters <tt>parentXpath</tt> and <tt>parentLocalName</tt> * are specified in the same configuration then an exception is thrown. * * @param parentXpath * xpath to the parent node, if the xpath returns several * values then the first Element node is used */ private XPathFilterParameterSpec parentXpath; /** * If you want to restrict the remote access via reference URIs, you can * set an own dereferencer. Optional parameter. If not set the provider * default dereferencer is used which can resolve URI fragments, HTTP, * file and XPpointer URIs. * <p> * Attention: The implementation is provider dependent! * * @seeXMLCryptoContext#setURIDereferencer(URIDereferencer) */ private URIDereferencer uriDereferencer; /** * You can set a base URI which is used in the URI dereferencing. * Relative URIs are then concatenated with the base URI. * * @seeXMLCryptoContext#setBaseURI(String) */ private String baseUri; /** * Sets the crypto context properties. See * {@link XMLCryptoContext#setProperty(String,Object)} . Possible * properties are defined in {@link XMLSignContext} an * {@link XMLValidateContext} (see Supported Properties). * <p> * The following properties are set by default to the value * {@link Boolean#TRUE} for the XML validation. If you want to switch * these features off you must set the property value to * {@link Boolean#FALSE} . * <ul> * <li><code>"org.jcp.xml.dsig.validateManifests"</code></li> * <li><code>"javax.xml.crypto.dsig.cacheReference"</code></li> * </ul> */ private Map cryptoContextProperties; /** * Disallows that the incoming XML document contains DTD DOCTYPE * declaration. The default value is {@link Boolean#TRUE} . * * @param disallowDoctypeDecl * if set to {@link Boolean#FALSE} then DOCTYPE declaration * is allowed, otherwise not */ private Boolean disallowDoctypeDecl = true; /** * Indicator whether the XML declaration in the outgoing message body * should be omitted. Default value is <code>false</code>. Can be * overwritten by the header * {@link XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION} . */ private Boolean omitXmlDeclaration = false; /** * Determines if the XML signature specific headers be cleared after * signing and verification. Defaults to true. */ private Boolean clearHeaders = true; /** * Classpath to the XML Schema. Must be specified in the detached XML * Signature case for determining the ID attributes, might be set in the * enveloped and enveloping case. If set, then the XML document is * validated with the specified XML schema. The schema resource URI can * be overwritten by the header * {@link XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI} . */ private String schemaResourceUri; /** * The character encoding of the resulting signed XML document. If * <code>null</code> then the encoding of the original XML document is * used. */ private String outputXmlEncoding; public CamelContext getCamelContext() { return camelContext; } public void setCamelContext(CamelContext camelContext) { this.camelContext = camelContext; } public KeyAccessor getKeyAccessor() { return keyAccessor; } public void setKeyAccessor(KeyAccessor keyAccessor) { this.keyAccessor = keyAccessor; } public AlgorithmMethod getCanonicalizationMethod() { return canonicalizationMethod; } public void setCanonicalizationMethod( AlgorithmMethod canonicalizationMethod) { this.canonicalizationMethod = canonicalizationMethod; } public List getTransformMethods() { return transformMethods; } public void setTransformMethods(List transformMethods) { this.transformMethods = transformMethods; } public String getSignatureAlgorithm() { return signatureAlgorithm; } public void setSignatureAlgorithm(String signatureAlgorithm) { this.signatureAlgorithm = signatureAlgorithm; } public String getDigestAlgorithm() { return digestAlgorithm; } public void setDigestAlgorithm(String digestAlgorithm) { this.digestAlgorithm = digestAlgorithm; } public Boolean getAddKeyInfoReference() { return addKeyInfoReference; } public void setAddKeyInfoReference(Boolean addKeyInfoReference) { this.addKeyInfoReference = addKeyInfoReference; } public String getPrefixForXmlSignatureNamespace() { return prefixForXmlSignatureNamespace; } public void setPrefixForXmlSignatureNamespace( String prefixForXmlSignatureNamespace) { this.prefixForXmlSignatureNamespace = prefixForXmlSignatureNamespace; } public String getParentLocalName() { return parentLocalName; } public void setParentLocalName(String parentLocalName) { this.parentLocalName = parentLocalName; } public String getParentNamespace() { return parentNamespace; } public void setParentNamespace(String parentNamespace) { this.parentNamespace = parentNamespace; } public String getContentObjectId() { return contentObjectId; } public void setContentObjectId(String contentObjectId) { this.contentObjectId = contentObjectId; } public String getSignatureId() { return signatureId; } public void setSignatureId(String signatureId) { this.signatureId = signatureId; } public String getContentReferenceUri() { return contentReferenceUri; } public void setContentReferenceUri(String contentReferenceUri) { this.contentReferenceUri = contentReferenceUri; } public String getContentReferenceType() { return contentReferenceType; } public void setContentReferenceType(String contentReferenceType) { this.contentReferenceType = contentReferenceType; } public Boolean getPlainText() { return plainText; } public void setPlainText(Boolean plainText) { this.plainText = plainText; } public String getPlainTextEncoding() { return plainTextEncoding; } public void setPlainTextEncoding(String plainTextEncoding) { this.plainTextEncoding = plainTextEncoding; } public XmlSignatureProperties getProperties() { return properties; } public void setProperties(XmlSignatureProperties properties) { this.properties = properties; } public String getKeyAccessorName() { return keyAccessorName; } public void setKeyAccessorName(String keyAccessorName) { this.keyAccessorName = keyAccessorName; } public String getCanonicalizationMethodName() { return canonicalizationMethodName; } public void setCanonicalizationMethodName( String canonicalizationMethodName) { this.canonicalizationMethodName = canonicalizationMethodName; } public String getTransformMethodsName() { return transformMethodsName; } public void setTransformMethodsName(String transformMethodsName) { this.transformMethodsName = transformMethodsName; } public String getPropertiesName() { return propertiesName; } public void setPropertiesName(String propertiesName) { this.propertiesName = propertiesName; } public List getXpathsToIdAttributes() { return xpathsToIdAttributes; } public void setXpathsToIdAttributes(List xpathsToIdAttributes) { this.xpathsToIdAttributes = xpathsToIdAttributes; } public XPathFilterParameterSpec getParentXpath() { return parentXpath; } public void setParentXpath(XPathFilterParameterSpec parentXpath) { this.parentXpath = parentXpath; } public URIDereferencer getUriDereferencer() { return uriDereferencer; } public void setUriDereferencer(URIDereferencer uriDereferencer) { this.uriDereferencer = uriDereferencer; } public String getBaseUri() { return baseUri; } public void setBaseUri(String baseUri) { this.baseUri = baseUri; } public Map getCryptoContextProperties() { return cryptoContextProperties; } public void setCryptoContextProperties(Map cryptoContextProperties) { this.cryptoContextProperties = cryptoContextProperties; } public Boolean getDisallowDoctypeDecl() { return disallowDoctypeDecl; } public void setDisallowDoctypeDecl(Boolean disallowDoctypeDecl) { this.disallowDoctypeDecl = disallowDoctypeDecl; } public Boolean getOmitXmlDeclaration() { return omitXmlDeclaration; } public void setOmitXmlDeclaration(Boolean omitXmlDeclaration) { this.omitXmlDeclaration = omitXmlDeclaration; } public Boolean getClearHeaders() { return clearHeaders; } public void setClearHeaders(Boolean clearHeaders) { this.clearHeaders = clearHeaders; } public String getSchemaResourceUri() { return schemaResourceUri; } public void setSchemaResourceUri(String schemaResourceUri) { this.schemaResourceUri = schemaResourceUri; } public String getOutputXmlEncoding() { return outputXmlEncoding; } public void setOutputXmlEncoding(String outputXmlEncoding) { this.outputXmlEncoding = outputXmlEncoding; } } public static class XmlVerifierConfigurationNestedConfiguration { public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.xmlsecurity.processor.XmlVerifierConfiguration.class; private CamelContext camelContext; /** * Provides the key for validating the XML signature. */ private KeySelector keySelector; /** * This interface allows the application to check the XML signature * before the validation is executed. This step is recommended in * http://www.w3.org/TR/xmldsig-bestpractices/#check-what-is-signed */ private XmlSignatureChecker xmlSignatureChecker; /** * Bean which maps the XML signature to the output-message after the * validation. How this mapping should be done can be configured by the * options outputNodeSearchType, outputNodeSearch, and * removeSignatureElements. The default implementation offers three * possibilities which are related to the three output node search types * "Default", "ElementName", and "XPath". The default implementation * determines a node which is then serialized and set to the body of the * output message If the search type is "ElementName" then the output * node (which must be in this case an element) is determined by the * local name and namespace defined in the search value (see option * outputNodeSearch). If the search type is "XPath" then the output node * is determined by the XPath specified in the search value (in this * case the output node can be of type "Element", "TextNode" or * "Document"). If the output node search type is "Default" then the * following rules apply: In the enveloped XML signature case (there is * a reference with URI="" and transform * "http://www.w3.org/2000/09/xmldsig#enveloped-signature"), the * incoming XML document without the Signature element is set to the * output message body. In the non-enveloped XML signature case, the * message body is determined from a referenced Object; this is * explained in more detail in chapter * "Output Node Determination in Enveloping XML Signature Case". */ private XmlSignature2Message xmlSignature2Message; /** * Handles the different validation failed situations. The default * implementation throws specific exceptions for the different * situations (All exceptions have the package name * org.apache.camel.component.xmlsecurity.api and are a sub-class of * XmlSignatureInvalidException. If the signature value validation * fails, a XmlSignatureInvalidValueException is thrown. If a reference * validation fails, a XmlSignatureInvalidContentHashException is * thrown. For more detailed information, see the JavaDoc. */ private ValidationFailedHandler validationFailedHandler; /** * Sets the output node search value for determining the node from the * XML signature document which shall be set to the output message body. * The class of the value depends on the type of the output node search. * The output node search is forwarded to {@link XmlSignature2Message} . */ private Object outputNodeSearch; /** * Determines the search type for determining the output node which is * serialized into the output message bodyF. See * {@link #setOutputNodeSearch(Object)} . The supported default search * types you can find in {@link DefaultXmlSignature2Message} . */ private String outputNodeSearchType = "Default"; /** * Indicator whether the XML signature elements (elements with local * name "Signature" and namesapce * ""http://www.w3.org/2000/09/xmldsig#"") shall be removed from the * document set to the output message. Normally, this is only necessary, * if the XML signature is enveloped. The default value is * {@link Boolean#FALSE} . This parameter is forwarded to * {@link XmlSignature2Message} . * <p> * This indicator has no effect if the output node search is of type * {@link DefaultXmlSignature2Message#OUTPUT_NODE_SEARCH_TYPE_DEFAULT} * .F */ private Boolean removeSignatureElements = false; /** * Enables secure validation. If true then secure validation is enabled. */ private Boolean secureValidation = true; /** * Name of handler to * * @param validationFailedHandlerName */ private String validationFailedHandlerName; /** * If you want to restrict the remote access via reference URIs, you can * set an own dereferencer. Optional parameter. If not set the provider * default dereferencer is used which can resolve URI fragments, HTTP, * file and XPpointer URIs. * <p> * Attention: The implementation is provider dependent! * * @seeXMLCryptoContext#setURIDereferencer(URIDereferencer) */ private URIDereferencer uriDereferencer; /** * You can set a base URI which is used in the URI dereferencing. * Relative URIs are then concatenated with the base URI. * * @seeXMLCryptoContext#setBaseURI(String) */ private String baseUri; /** * Sets the crypto context properties. See * {@link XMLCryptoContext#setProperty(String,Object)} . Possible * properties are defined in {@link XMLSignContext} an * {@link XMLValidateContext} (see Supported Properties). * <p> * The following properties are set by default to the value * {@link Boolean#TRUE} for the XML validation. If you want to switch * these features off you must set the property value to * {@link Boolean#FALSE} . * <ul> * <li><code>"org.jcp.xml.dsig.validateManifests"</code></li> * <li><code>"javax.xml.crypto.dsig.cacheReference"</code></li> * </ul> */ private Map cryptoContextProperties; /** * Disallows that the incoming XML document contains DTD DOCTYPE * declaration. The default value is {@link Boolean#TRUE} . * * @param disallowDoctypeDecl * if set to {@link Boolean#FALSE} then DOCTYPE declaration * is allowed, otherwise not */ private Boolean disallowDoctypeDecl = true; /** * Indicator whether the XML declaration in the outgoing message body * should be omitted. Default value is <code>false</code>. Can be * overwritten by the header * {@link XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION} . */ private Boolean omitXmlDeclaration = false; /** * Determines if the XML signature specific headers be cleared after * signing and verification. Defaults to true. */ private Boolean clearHeaders = true; /** * Classpath to the XML Schema. Must be specified in the detached XML * Signature case for determining the ID attributes, might be set in the * enveloped and enveloping case. If set, then the XML document is * validated with the specified XML schema. The schema resource URI can * be overwritten by the header * {@link XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI} . */ private String schemaResourceUri; /** * The character encoding of the resulting signed XML document. If * <code>null</code> then the encoding of the original XML document is * used. */ private String outputXmlEncoding; public CamelContext getCamelContext() { return camelContext; } public void setCamelContext(CamelContext camelContext) { this.camelContext = camelContext; } public KeySelector getKeySelector() { return keySelector; } public void setKeySelector(KeySelector keySelector) { this.keySelector = keySelector; } public XmlSignatureChecker getXmlSignatureChecker() { return xmlSignatureChecker; } public void setXmlSignatureChecker( XmlSignatureChecker xmlSignatureChecker) { this.xmlSignatureChecker = xmlSignatureChecker; } public XmlSignature2Message getXmlSignature2Message() { return xmlSignature2Message; } public void setXmlSignature2Message( XmlSignature2Message xmlSignature2Message) { this.xmlSignature2Message = xmlSignature2Message; } public ValidationFailedHandler getValidationFailedHandler() { return validationFailedHandler; } public void setValidationFailedHandler( ValidationFailedHandler validationFailedHandler) { this.validationFailedHandler = validationFailedHandler; } public Object getOutputNodeSearch() { return outputNodeSearch; } public void setOutputNodeSearch(Object outputNodeSearch) { this.outputNodeSearch = outputNodeSearch; } public String getOutputNodeSearchType() { return outputNodeSearchType; } public void setOutputNodeSearchType(String outputNodeSearchType) { this.outputNodeSearchType = outputNodeSearchType; } public Boolean getRemoveSignatureElements() { return removeSignatureElements; } public void setRemoveSignatureElements(Boolean removeSignatureElements) { this.removeSignatureElements = removeSignatureElements; } public Boolean getSecureValidation() { return secureValidation; } public void setSecureValidation(Boolean secureValidation) { this.secureValidation = secureValidation; } public String getValidationFailedHandlerName() { return validationFailedHandlerName; } public void setValidationFailedHandlerName( String validationFailedHandlerName) { this.validationFailedHandlerName = validationFailedHandlerName; } public URIDereferencer getUriDereferencer() { return uriDereferencer; } public void setUriDereferencer(URIDereferencer uriDereferencer) { this.uriDereferencer = uriDereferencer; } public String getBaseUri() { return baseUri; } public void setBaseUri(String baseUri) { this.baseUri = baseUri; } public Map getCryptoContextProperties() { return cryptoContextProperties; } public void setCryptoContextProperties(Map cryptoContextProperties) { this.cryptoContextProperties = cryptoContextProperties; } public Boolean getDisallowDoctypeDecl() { return disallowDoctypeDecl; } public void setDisallowDoctypeDecl(Boolean disallowDoctypeDecl) { this.disallowDoctypeDecl = disallowDoctypeDecl; } public Boolean getOmitXmlDeclaration() { return omitXmlDeclaration; } public void setOmitXmlDeclaration(Boolean omitXmlDeclaration) { this.omitXmlDeclaration = omitXmlDeclaration; } public Boolean getClearHeaders() { return clearHeaders; } public void setClearHeaders(Boolean clearHeaders) { this.clearHeaders = clearHeaders; } public String getSchemaResourceUri() { return schemaResourceUri; } public void setSchemaResourceUri(String schemaResourceUri) { this.schemaResourceUri = schemaResourceUri; } public String getOutputXmlEncoding() { return outputXmlEncoding; } public void setOutputXmlEncoding(String outputXmlEncoding) { this.outputXmlEncoding = outputXmlEncoding; } } }