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

时间:2018-02-20 20:15:39

标签: java xml jaxb filterfunction

我正在使用https://github.com/highsource/ogc-schemas中的OGC架构。

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

我正在尝试使用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();

1 个答案:

答案 0 :(得分:2)

有些事情:

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);

等等。