在 JaxB 中创建不同的运算符?

Creating different operators in JaxB?

我正在使用来自 https://github.com/highsource/ogc-schemas 的 OGC 模式。

我正在查看从反序列化 XML 到 JaxB 对象的未编组对象结构。

我正在尝试构建一个自定义对象以使用 JaxB 序列化为 XML。

已看到过滤器架构http://schemas.opengis.net/filter/2.0/filter.xsd

我正在像这样解组对象:

JAXBElement<FilterType> filter = (JAXBElement<FilterType>) unmarshal.unmarshal(new File("Filter01.xml"));

现在,我正在查看内部对象,发现我有不同的过滤器类型。我想创建一个二进制逻辑运算符的过滤器类型,并使用适当的数据对其进行初始化。这让我感到困惑的是初始化部分。

IE:

BinaryLogicOpType blop = new BinaryLogicOpType();

大致情况:

ObjectFactory objectFactory = new ObjectFactory()
BinaryLogicOpType _or = new BinaryLogicOpType();
JAXBElement<BinaryLogicOpType> root = objectFactory.createOr(_or);

BinaryComparisonOpType weightIsLessThan100 = new BinaryComparisonOpType();
_or.getOps()
  .add(objectFactory.createPropertyIsLessThan(weightIsLessThan100));

JAXBElement<String> weightValueReference = 
    objectFactory.createValueReference("weight");
LiteralType _100 = new LiteralType();
_100.getContent().add(100);
JAXBElement<LiteralType> _100Literal = objectFactory.createLiteral(_100);

weightIsLessThan100.getExpression().add(weightValueReference);
weightIsLessThan100.getExpression().add(_100Literal);

以此类推