zoukankan      html  css  js  c++  java
  • JAXB

    The annotation XmlSchemaType defines a mapping between an arbitrary Java type and a simple schema built-in type. Most of the time the default mapping is satisfactory, but every now and then an alternative may be more convenient. Let's assume that the processing of chunks of text requires their extension, either after unmarshalling or before the emitting marshalling. For this, a StringBuffer is better than String, which is the default mapping for xs:string. Below are the essential Java classes, one defining TextType as a container for a string, and the type adapter class for the simple conversion between String and StringBuffer. Notice that the latter class is specified in a separate annotation, i.e.,XmlJavaTypeAdapter.

    public class TextType {
        @XmlElement
        @XmlSchemaType(name="string")
        @XmlJavaTypeAdapter( String2StrBuf.class )
        public StringBuffer strbuf;
    }
    
    public class String2StrBuf
        extends XmlAdapter<String,StringBuffer> {
        @Override
        public String marshal( StringBuffer strbuf ){
            return strbuf.toString();
        }
        @Override
        public StringBuffer unmarshal( String string ){
            return new StringBuffer( string );
        }
    }

    Within the Java code that unmarshals or marshals an instance document, TextType elements are now StringBuffers, e.g.:

    TextType text = new TextType();
    text.strbuf = new StringBuffer( "This is the house" );
    // ...
    text.strbuf.append( " that Jack built." );

    Such a type mapping can be defined either for an individual element or for all occurrences within a package. If you need multiple mappings at package level, you'll have to bundle theXmlSchemaType annotations in an XmlSchemaTypes (note the plural) annotation, and the XmlJavaTypeAdapter annotiations are packed into a single XmlJavaTypeAdapters annotation.

  • 相关阅读:
    Java实现数字转化成字符串左边自动补零方法
    java如何对map进行排序详解(map集合的使用)
    java字符串比较的原理
    rancher快速创建mysql和redis
    k8s Ingress介绍和部署IngressController
    k8s+rancher+阿里云镜像简单部署flask项目
    helm 部署minio
    k8s存储数据卷
    k8s搭建redis集群
    团队作业4:第二篇Scrum冲刺博客
  • 原文地址:https://www.cnblogs.com/huey/p/5512379.html
Copyright © 2011-2022 走看看