我有 2 条几乎相似但确实有一些专用元素的 xml 消息。现在我想将这些组合到消息中并为其创建一个“灵活”的 xml 模式,以便在处理之前对其进行验证。
这个想法是有一个共同的结构,其中定义了两个 xml 消息中的所有字段,然后是不同字段的 2 个专用部分。然后以某种方式确定正在接收哪个消息,然后使用 xml 模式的公共和正确的专用部分进行验证。
一个简单的例子如下所示。根据 TransportType(可以是汽车或船),xml 消息将包含 3 个元素。2 个元素(品牌和型号)对于两者都是通用的,另外 2 个元素(安全气囊和电动)是特定的,具体取决于选择。
汽车示例
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TransportType>Car</TransportType>
<Input>
<Make>String</Make>
<Model>String</Model>
<Airbags>true</Airbags>
</Input>
</root>
船的例子
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TransportType>Boat</TransportType>
<Input>
<Make>String</Make>
<Model>String</Model>
<Motorized>true</Motorized>
</Input>
</root>
我一直在尝试选择和引用,但如果不添加元素(这是不允许的),我无法让它工作。