我定义了一个类来存储我的应用程序的配置数据。我想将其实例保存到xml并为此使用XStream。但是当我尝试编写实例时,我总是遇到内存错误。
这是我的类定义:
public class Eol_Target_Variable {
String name;
String alias;
long value;
long default_val;
int size;
int scaling;
int div;
Boolean read_access;
Boolean write_access;
public Eol_Target_Variable(String arg_name, String arg_alias, int arg_value, int arg_size, int arg_scaling,int arg_div)
{
name = arg_name;
alias = arg_alias;
value = arg_value;
default_val = 0;
scaling = arg_scaling;
div = arg_div;
size = arg_size;
read_access = true;
write_access = true;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
...等所有标准getter和setter
下面是我将单个对象导出为xml的处理程序
public void importConfiguration() {
XStream xstream = new XStream(new DomDriver());
Eol_Target_Variable myvar = new Eol_Target_Variable("jamie", "xtracold", 1977, 16, 1, 1);
String myxml = xstream.toXML(myvar);
System.out.print(myxml);
}
每次我抛出“线程中的异常”JavaFX应用程序线程“java.lang.OutOfMemoryError:java堆空间”。我不明白为什么这么简单的类会抛出内存不足错误。我已经成功地使用XStream输出了简单的字符串对象,所以库可以正常工作,似乎正是这个自定义类造成了问题。
我还尝试使用VM参数-Xms512m-Xmx增加在启动时分配的堆1024m但没有区别。
谢谢Jamie
这是新的类声明
@XStreamAlias("targetVar")
public class Eol_Target_Variable {
String name;
String alias;
long value;
@XStreamAlias("default")
long default_val;
int size;
int scaling;
int div;
@XStreamOmitField
Node node;
@XStreamOmitField
Boolean read_access;
@XStreamOmitField
Boolean write_access;
public Eol_Target_Variable(String arg_name, String arg_alias, int arg_value, int arg_size, int arg_scaling,int arg_div, Node arg_node)
{
name = arg_name;
alias = arg_alias;
value = arg_value;
default_val = 0;
scaling = arg_scaling;
div = arg_div;
size = arg_size;
node = arg_node;
read_access = true;
write_access = true;
}
我还使用了不同的解析器,因为基本的DOMParser从未处理过大量数据。当我换成StaxDriver时,当XStream遍历整个场景图时,至少可以在调试输出中看到文本流。
XStream xstream = new XStream(new StaxDriver());
xstream.processAnnotations(Eol_Target_Variable.class);
我不会假装完全理解为什么声明内联类会导致问题,但我可以解释为什么要求XStream解析完整的Node可能会导致问题。
如果有人对XStream和复杂的数据结构有任何经验,我欢迎他们的输入。
问题内容: 我正在创建一个Web API,需要一种很好的方法来非常快速地生成一些格式正确的xml。我找不到在python中执行此操作的任何好方法。 注意:一些库看起来很有前途,但要么缺少文档,要么仅输出到文件。 问题答案: 使用lxml: 输出: 有关更多信息,请参见教程。
问题内容: 我想知道是否有一种方法可以在我拥有数据和标签的情况下自动从XSD架构生成XML文件。我想在python / java中做到这一点。似乎很有可能,但是我找不到任何允许我执行此操作的库。我正在寻找一个相当快速的解决方案。 问题答案: 查看适用于与JAXB相似的Python工具的pyXSD。 XSD用于创建Python类。Python对象用于发出XML。
问题内容: 我想制作一个Java swing应用程序,从中我可以生成保存相同数据的xml文件,并且生成的文件数将由用户决定。我的xml文件包含xml模式,而我的xml文件结构看起来像这样 如果有人提供一些代码片段帮助,我是Java新手,它将对我有更大的帮助。 我想生成保存示例XML中给出的xml模式的xml文件。 问题答案: 在Java中,您使用JAXP处理XML。您使用与DOM相关的类来生成xm
问题内容: 我们正在使用Oracle 11数据库和Java开发环境(使用Eclipse),并且希望将多个xml模式迁移到SQL模式。 已经看过xsd了,但是确实需要一些可以在不安装SQL Server的情况下从ant / Eclipse运行的功能。 问候, 安迪 问题答案: 另一个选择是使用JAXB生成Java对象,并使用Hibernate创建基于类层次结构的架构。 话虽如此,这取决于您要尝试做的
我试图使用Xerces-J动态生成XML schema,但出现了以下错误,希望得到相关帮助。
问题内容: 我使用XJC工具为XSD架构生成Java类。当我使用JAXB Marshaller将类编组为XML有效负载时,我在输出XML中缺少“ schemaLocation”参数,但在xsd文件中声明了此参数。如何在输出XML中强制执行“ schemaLocation”参数? 以下是用于代码生成的xsd模式文件的开头: 问候 问题答案: 试试这个: