diff --git a/src/main/java/tools/jackson/dataformat/xml/XmlFactory.java b/src/main/java/tools/jackson/dataformat/xml/XmlFactory.java index 7b5433f4..88718c82 100644 --- a/src/main/java/tools/jackson/dataformat/xml/XmlFactory.java +++ b/src/main/java/tools/jackson/dataformat/xml/XmlFactory.java @@ -167,6 +167,18 @@ public static XmlFactoryBuilder builder() { return new XmlFactoryBuilder(); } + /** + * The builder returned uses default settings more closely + * matching the default configs used in Jackson 2.x versions. + *
+ * This method is still a work in progress and may not yet fully replicate the + * default settings of Jackson 2.x. + *
+ */ + public static XmlFactoryBuilder builderWithJackson2Defaults() { + return builder().configureForJackson2(); + } + /** * Note: compared to base implementation by {@link TokenStreamFactory}, * here the copy will actually share underlying XML input and diff --git a/src/main/java/tools/jackson/dataformat/xml/XmlMapper.java b/src/main/java/tools/jackson/dataformat/xml/XmlMapper.java index 0b4a12d0..01d0c052 100644 --- a/src/main/java/tools/jackson/dataformat/xml/XmlMapper.java +++ b/src/main/java/tools/jackson/dataformat/xml/XmlMapper.java @@ -235,6 +235,24 @@ public Builder configure(XmlWriteFeature feature, boolean state) return this; } + /** + * The builder returned uses default settings more closely + * matching the default configs used in Jackson 2.x versions. + *+ * This method is still a work in progress and may not yet fully replicate the + * default settings of Jackson 2.x. + *
+ */ + @Override + public Builder configureForJackson2() { + return super.configureForJackson2() + .disable(XmlWriteFeature.WRITE_NULLS_AS_XSI_NIL) + .disable(XmlWriteFeature.UNWRAP_ROOT_OBJECT_NODE) + .disable(XmlWriteFeature.AUTO_DETECT_XSI_TYPE) + .disable(XmlWriteFeature.WRITE_XML_SCHEMA_CONFORMING_FLOATS) + .disable(XmlReadFeature.AUTO_DETECT_XSI_TYPE); + } + /* /****************************************************************** /* XML specific additional config @@ -340,6 +358,19 @@ public static XmlMapper.Builder builder(XmlFactory streamFactory) { return new XmlMapper.Builder(streamFactory); } + /** + * The builder returned uses default settings more closely + * matching the default configs used in Jackson 2.x versions. + *+ * This method is still a work in progress and may not yet fully replicate the + * default settings of Jackson 2.x. + *
+ */ + public static XmlMapper.Builder builderWithJackson2Defaults() { + return builder(XmlFactory.builderWithJackson2Defaults().build()) + .configureForJackson2(); + } + @SuppressWarnings("unchecked") @Override public XmlMapper.Builder rebuild() { diff --git a/src/main/java/tools/jackson/dataformat/xml/deser/FromXmlParser.java b/src/main/java/tools/jackson/dataformat/xml/deser/FromXmlParser.java index 44e7d490..73f6f0b5 100644 --- a/src/main/java/tools/jackson/dataformat/xml/deser/FromXmlParser.java +++ b/src/main/java/tools/jackson/dataformat/xml/deser/FromXmlParser.java @@ -19,6 +19,7 @@ import tools.jackson.core.io.NumberInput; import tools.jackson.core.util.ByteArrayBuilder; import tools.jackson.core.util.JacksonFeatureSet; +import tools.jackson.dataformat.xml.XmlWriteFeature; import tools.jackson.dataformat.xml.util.CaseInsensitiveNameSet; import tools.jackson.dataformat.xml.util.StaxUtil; @@ -283,6 +284,10 @@ public void addVirtualWrapping(Set