Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Jackson Dataformat XML Source Code
Jackson is "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java".
Jackson also allows you to parse or generate XML messages with the Jackson Dataformat XML Extension.
Jackson Dataformat XML Source Code files are provided in the source packge (jackson-dataformat-xml-2.14.0-sources.jar). You can download it at Jackson Maven Website.
You can also browse Jackson Dataformat XML Source Code below:
✍: FYIcenter.com
⏎ com/fasterxml/jackson/dataformat/xml/XmlTypeResolverBuilder.java
package com.fasterxml.jackson.dataformat.xml; import java.io.IOException; import java.util.Collection; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.cfg.MapperConfig; import com.fasterxml.jackson.databind.jsontype.NamedType; import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator; import com.fasterxml.jackson.databind.jsontype.TypeIdResolver; import com.fasterxml.jackson.databind.jsontype.impl.ClassNameIdResolver; import com.fasterxml.jackson.databind.jsontype.impl.MinimalClassNameIdResolver; import com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.dataformat.xml.util.StaxUtil; /** * Custom specialization of {@link StdTypeResolverBuilder}; needed so that * type id property name can be modified as necessary to make it legal * XML element or attribute name. */ public class XmlTypeResolverBuilder extends StdTypeResolverBuilder { @Override public StdTypeResolverBuilder init(JsonTypeInfo.Id idType, TypeIdResolver idRes) { super.init(idType, idRes); if (_typeProperty != null) { _typeProperty = StaxUtil.sanitizeXmlTypeName(_typeProperty); } return this; } @Override public StdTypeResolverBuilder typeProperty(String typeIdPropName) { // ok to have null/empty; will restore to use defaults if (typeIdPropName == null || typeIdPropName.length() == 0) { typeIdPropName = _idType.getDefaultPropertyName(); } _typeProperty = StaxUtil.sanitizeXmlTypeName(typeIdPropName); return this; } @Override protected TypeIdResolver idResolver(MapperConfig<?> config, JavaType baseType, PolymorphicTypeValidator subtypeValidator, Collection<NamedType> subtypes, boolean forSer, boolean forDeser) { if (_customIdResolver != null) { return _customIdResolver; } // Only override handlers of class, minimal class; name is good as is switch (_idType) { case CLASS: return new XmlClassNameIdResolver(baseType, config.getTypeFactory(), subTypeValidator(config)); case MINIMAL_CLASS: return new XmlMinimalClassNameIdResolver(baseType, config.getTypeFactory(), subTypeValidator(config)); default: } return super.idResolver(config, baseType, subtypeValidator, subtypes, forSer, forDeser); } /* /********************************************************************** /* Internal helper methods /********************************************************************** */ /** * Helper method for encoding regular Java class name in form that * can be used as XML element name. */ protected static String encodeXmlClassName(String className) { /* For now, let's just replace '$'s with double dots... * Perhaps make configurable in future? */ int ix = className.lastIndexOf('$'); if (ix >= 0) { StringBuilder sb = new StringBuilder(className); do { sb.replace(ix, ix+1, ".."); ix = className.lastIndexOf('$', ix-1); } while (ix >= 0); className = sb.toString(); } return className; } /** * Helper method for decoding "XML safe" Java class name back into * actual class name */ protected static String decodeXmlClassName(String className) { int ix = className.lastIndexOf(".."); if (ix >= 0) { StringBuilder sb = new StringBuilder(className); do { sb.replace(ix, ix+2, "$"); ix = className.lastIndexOf("..", ix-1); } while (ix >= 0); className = sb.toString(); } return className; } /* /********************************************************************** /* Customized class name handlers /********************************************************************** */ protected static class XmlClassNameIdResolver extends ClassNameIdResolver { public XmlClassNameIdResolver(JavaType baseType, TypeFactory typeFactory, PolymorphicTypeValidator ptv) { super(baseType, typeFactory, ptv); } @Override public String idFromValue(Object value) { return encodeXmlClassName(super.idFromValue(value)); } @Override public JavaType typeFromId(DatabindContext context, String id) throws IOException { return super.typeFromId(context, decodeXmlClassName(id)); } } protected static class XmlMinimalClassNameIdResolver extends MinimalClassNameIdResolver { public XmlMinimalClassNameIdResolver(JavaType baseType, TypeFactory typeFactory, PolymorphicTypeValidator ptv) { super(baseType, typeFactory, ptv); } @Override public String idFromValue(Object value) { return encodeXmlClassName(super.idFromValue(value)); } @Override public JavaType typeFromId(DatabindContext context, String id) throws IOException { return super.typeFromId(context, decodeXmlClassName(id)); } } }
⏎ com/fasterxml/jackson/dataformat/xml/XmlTypeResolverBuilder.java
Or download all of them as a single archive file:
File name: jackson-dataformat-xml-2.14.0-sources.jar File size: 98015 bytes Release date: 2022-11-05 Download
⇒ Download Jackson Dataformat Binary Packages
⇐ Jackson Dataformat Extensions
2021-10-10, 14239👍, 0💬
Popular Posts:
JDK 17 jdk.compiler.jmod is the JMOD file for JDK 17 Compiler tool, which can be invoked by the "jav...
Smack is an Open Source XMPP (Jabber) client library for instant messaging and presence. A pure Java...
Apache Avalon began in 1999 as the Java Apache Server Framework and in late 2002 separated from the ...
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was develo...
What Is mail.jar of JavaMail 1.3? I got the JAR file from javamail-1_3.zip. mail.jar in javamail-1_3...