使JAXB XJC为简单类型生成一个包装类(Make JAXB XJC generate a wrapping class for a simple type)
我有以下xml类型:
<xsd:element name="FaxNumbers" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="FaxNumber" type="FaxNumber" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element>
FaxNumber类型如下所示:
<xsd:simpleType name="FaxNumber"> <xsd:restriction base="xsd:string"> <xsd:minLength value="1" /> </xsd:restriction> </xsd:simpleType>
产生的XML应该是这样的:
<FaxNumbers> <FaxNumber>3878374</FaxNumber> <FaxNumber>387833434</FaxNumber> <FaxNumber>3878334</FaxNumber> </FaxNumbers>
当运行JAXB XJC从XSD生成Java类时,它会生成以下类:
@XmlType(name = "FaxNumbers") public class FaxNumbers { /** * No comment. */ @XmlElement(name = "FaxNumber", required = true) protected List<String> faxNumber = new ArrayList<String>(); }
不过,我想将FaxNumber绑定到复合类,如下所示:
@XmlType(name = "FaxNumbers") public class FaxNumbers { /** * No comment. */ @XmlElement(name = "FaxNumber", required = true) protected List<FaxNumber> faxNumber = new ArrayList<String>(); } Where FaxNumber class looks like this: public class FaxNumber{ @XmlValue private String value; }
有没有办法在JAXB绑定xml中定义这种绑定?
注意:不幸的是,我无法控制并且无法更改XSD
I have the following xml types:
<xsd:element name="FaxNumbers" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="FaxNumber" type="FaxNumber" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element>
The FaxNumber type looks like this:
<xsd:simpleType name="FaxNumber"> <xsd:restriction base="xsd:string"> <xsd:minLength value="1" /> </xsd:restriction> </xsd:simpleType>
The resulting xml should be something like this:
<FaxNumbers> <FaxNumber>3878374</FaxNumber> <FaxNumber>387833434</FaxNumber> <FaxNumber>3878334</FaxNumber> </FaxNumbers>
When running JAXB XJC to generate java classes from XSD it generates the following class:
@XmlType(name = "FaxNumbers") public class FaxNumbers { /** * No comment. */ @XmlElement(name = "FaxNumber", required = true) protected List<String> faxNumber = new ArrayList<String>(); }
However i would like bind FaxNumber to composite class like this:
@XmlType(name = "FaxNumbers") public class FaxNumbers { /** * No comment. */ @XmlElement(name = "FaxNumber", required = true) protected List<FaxNumber> faxNumber = new ArrayList<String>(); } Where FaxNumber class looks like this: public class FaxNumber{ @XmlValue private String value; }
Is there a way to define such binding in JAXB bindings xml?
Note: Unfortunately I don't have control over and cannot change the XSD
原文:https://stackoverflow.com/questions/12721508
更新时间:2022-09-20 14:09
最满意答案
addjavascriptinterface, 把请求结果通过这个接口返回到android上,打印log日志。
其他回答
检查是不是scrollview和webview嵌套的问题,如果是的话,尽量不要使用scrollview嵌套,或者用framelayout替代
相关问答
更多-
请问大神怎么样才能把网页里没有下载设置的视频下载到计算机里?[2023-01-02]
用下载软件,维棠 或 IDM 等 -
android怎么让webview里的资源访问本地缓存[2023-07-21]
android让webview里的资源访问本地缓存 继承并实现一个ContentProvider package com.packagename.provider; public class MyProvider extends ContentProvider { @Override public ParcelFileDescriptor openFile(Uri uri, String mode){ URI fileURI = URI.create( "file://" + uri.getPath() ) ... -
android在手机里可以删除吗[2022-07-22]
你这样的问题与很多种说法: 比如:1.能否删除android系统———回答:可以的,更换手机系统,但一般的手机都是安卓系统,不建议(除苹果等高端产品) 2.能否删除android软件 ---------回答:可以的,在应用商店或者在杀毒软件中可以删除。 3.Android手机安装的应用长按往上托,有一个删除的按钮的。 4.手机里的Android文件可以删吗 回答:不可以删除,里面都是些系统文件和你安装的程序文件,如果你觉得该文件夹太大占用空间,最简单的办法是备份数据后刷机清理一下,同时尽量少安装些软件,注意 ... -
android怎么让webview里的资源访问本地缓存[2022-07-21]
您好,很高兴能帮助您 酷盘Android版清理本地缓存文件的方法如下: 如果下载的酷盘文件占用了过多手机的空间,可以通过“设置—>用户信息—>清空本地缓存文件”选项来清理本地缓存。收藏到手机的文件不会被清理,如需清理已收藏文件,请先取消收藏再清理缓存。 你的采纳是我前进的动力, 记得好评和采纳,答题不易,互相帮助, -
Android的webview里怎么用HttpResponseCache[2022-12-16]
WebView的缓存可以分为页面缓存和数据缓存。 页面缓存是指加载一个网页时的html、JS、CSS等页面或者资源数据。这些缓存资源是由于浏览器的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地影响到这些缓存数据。 他们的索引存放在/data/data/package_name/databases下。他们的文件存放在/data/data/package_name/cache/xxxwebviewcachexxx下。文件夹的名字在2.x和4.x上有所不同,但都文件夹名字中都包含webvi ... -
android webview请求网络后网页内容显示不够完全[2022-11-24]
webview是个”干净“的控件,需要加入相关插件的代码,使得能够支持兼容性插件问题,例如显示AdobeFlashPlayer插件相关文件等等。解决的方法,安装相关的插件或者在代码中添加相关代码。 如果带有webview的应用在不同手机中的显示结果不同,那么很有可能是插件的问题。希望我的建议能有用。 -
可能你使用的不正确,调试一下看看,或把代码贴出来看看!
-
android中,如何屏蔽WebView里的超链接?[2022-01-09]
mWebView.setWebViewClient(new MyWebviewClient()); class MyWebviewClient extends WebViewClient{ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return true; } } shouldOverrideUrlLoading 这个方法就是点击网页上的超链接的回调函数 按照我这样做就没问题了。 -
滑动后执行下重绘页面试下
-
android里的webview如何查看网页里的请求的返回结果?[2024-04-05]
addjavascriptinterface, 把请求结果通过这个接口返回到android上,打印log日志。