Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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 基类中的jaxb xjc falg可从内部类访问_Java_Xml_Jaxb_Xjc - Fatal编程技术网

Java 基类中的jaxb xjc falg可从内部类访问

Java 基类中的jaxb xjc falg可从内部类访问,java,xml,jaxb,xjc,Java,Xml,Jaxb,Xjc,也许我没有用正确的词来搜索这个主题,但是我找不到答案 简介 我有一个包含一些复杂类型的xsd文件。我需要进行一些“昂贵的”xslt转换,在封送处理之前返回一个字符串。但是,仅当自上次封送处理以来发生了更改时才执行此操作,否则使用以前的转换输出。我在其他地方也需要该字符串值,而不仅仅是在执行封送处理时 (顺便说一下,xsd文件几乎每一两年都会更改一次) 问题 为了防止在没有任何更改的情况下发生转换,我需要在字段更改时使用某种“true”标志。我认为该标志的最佳位置是基提取类,因此它的每个实例都会保

也许我没有用正确的词来搜索这个主题,但是我找不到答案

简介 我有一个包含一些复杂类型的xsd文件。我需要进行一些“昂贵的”xslt转换,在封送处理之前返回一个字符串。但是,仅当自上次封送处理以来发生了更改时才执行此操作,否则使用以前的转换输出。我在其他地方也需要该字符串值,而不仅仅是在执行封送处理时

(顺便说一下,xsd文件几乎每一两年都会更改一次)

问题 为了防止在没有任何更改的情况下发生转换,我需要在字段更改时使用某种“true”标志。我认为该标志的最佳位置是基提取类,因此它的每个实例都会保持更新。当我需要从包含的类中更改标志时,问题就出现了,因为它没有对基类的引用

我记得几年前在jaxb邮件列表中问过类似的问题。我不记得确切的答案是什么,但我最终使基类成为一个单例,并使用绑定文件在其中添加了一些静态字段。使用AOP,每次调用setter时,我都会更改一个添加的字段(简而言之)

现在,我需要这个班级不要成为单身汉。我需要有多个它的实例,因为同一个类的使用方式与以前不同,我不想实现“忙标志”并造成瓶颈

由于xsd文件是由第三方指定的,并且经常更改,因此我不想手动执行许多固定的转换,因为维护将非常困难和昂贵

思想: 如果XJC创建的内部类不是静态的,我可以做如下操作

如果我这样做,包含的complexType属性不再是静态的,但是因为每个complexType都是在自己的文件中生成的,所以它们也找不到基类。complexType类没有对容器类的引用

考虑过在某个地方有一个映射,其中包含对每个complexTyple类实例的引用,但无法想象如果不手动完成,如何实现它……那么XJC有什么用处,对吗

怎么做?
  • 找到一种方法使内部类不是静态的
  • 我认为这将是最好的解决方案,因为它更容易实施

  • 找到一种方法在每个内部类上添加对基类的引用
  • 这很难实现,因为我需要为每个内部类定义一个带有修改的绑定文件,并且我可能需要(以某种方式)更改ObjectFactore,使每个构造函数都有一个带有基类实例的参数

  • ?
  • 帮助
    有什么想法和/或建议吗?

    将校验和存储在文件中(例如压缩文件)是否不能提供足够的信息?我需要该功能的地方还没有文件。例如,在某些情况下,我会进行最终计算并更改某些值。在这种情况下,我必须进行“昂贵”的转换。否则,我不应该等到使用CRC32时,才可以将java模型流化为字节,并动态计算校验和。是的。风险投资公司甚至会更好。甚至可以将版本存储在根目录下,将其排除在CRC计算中。@JoopEggen我需要在运行时为每个实例执行此操作。你的意思是做一些类似的事情,然后计算crc吗?问题是如何排除它的一些值。我该怎么做呢?事实上,我的意思是,当对象层次结构对一个流进行封送处理时,执行一个CRC,后者要么使用第二个线程和一个java.nio管道,要么使用一些自制的CrcCalculatingNullOutputStream。