Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过XSD文件添加XmlAdapter类_Java_Xml_Web Services_Xsd_Jaxb - Fatal编程技术网

Java 如何通过XSD文件添加XmlAdapter类

Java 如何通过XSD文件添加XmlAdapter类,java,xml,web-services,xsd,jaxb,Java,Xml,Web Services,Xsd,Jaxb,我是XSD和JAXB的新手。 我有一个XSD模式文件logic.XSD,它生成一个完整的包,比如“com.ilume”,其中包含一些类(Employee.java)和package-info.java文件 现在,我想在同一个包中添加一个自定义适配器类(适配器类,如中所示的StringTrimAdapter类)。 这个适配器类应该从my logic.xsd生成(我应该在logic.xml文件中添加什么,以便它可以生成StringTrimAdapter?) 我想在package-info.java中

我是XSD和JAXB的新手。 我有一个XSD模式文件logic.XSD,它生成一个完整的包,比如“com.ilume”,其中包含一些类(Employee.java)和package-info.java文件

现在,我想在同一个包中添加一个自定义适配器类(适配器类,如中所示的
StringTrimAdapter
类)。 这个适配器类应该从my logic.xsd生成(我应该在logic.xml文件中添加什么,以便它可以生成
StringTrimAdapter
?)


我想在package-info.java中添加
@XmlJavaTypeAdapter(MyNormalizedStringAdapter.class)
。我应该写什么样的装订,在哪里?

我昨天也遇到了同样的问题

最好的解决办法是使用

@XmlJavaTypeAdapter(CollapsedStringAdapter.class)

。 它是一个现有的内置类型适配器,可以帮助您修剪CDATA内容

例如,让我们以这个XML为例

<books>
   <book>
      <name><![CDATA[ <br> Harry Potter </br>
        ]]></name>

   </book>
</books>
您必须将适配器添加到包含CDATA部分的变量名的正上方

然后IDE将要求您导入所需的库文件

import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
就这样。希望它能帮助您:)

@XmlValue
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
protected String name;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;