我想在json模式中复制以下XSD:
<xs:element maxOccurs="unbounded" name="Variable" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="VariableName" type="xs:string" />
<xs:choice maxOccurs="1">
<xs:sequence>
<xs:element name="VariableValue" type="xs:string" />
</xs:sequence>
<xs:sequence>
<xs:element name="ValueMask" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="Prefix" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="RangeStart" type="xs:int" />
<xs:element name="RangeEnd" type="xs:int" />
<xs:element name="Suffix" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
此XSD具有以下要求:
Variable
节点将具有VariableName
元素Variable
节点将具有VariableValue
元素Variable
具有VariableValue
元素的节点不能具有ValueMask
,Prefix
,RangeStart
,RangeEnd
和{{1} }元素Suffix
节点将具有Variable
和RangeStart
元素RangeEnd
和Varaible
元素的RangeStart
节点也可以具有RangeEnd
,ValueMask
和/或Prefix
元素。 Suffix
具有Variable
和RangeStart
元素的Nodex不能具有RangeEnd
元素。我在这里看到了similar question,但是它具有VariableValue
属性,这将阻止对"additionalProperties": false
,ValueMask
和/或选择选项2时Prefix
。
有人知道如何在JSON模式中实现这些要求吗?
这是我正在使用的当前JSON :(请原谅这些注释,我知道它们不是有效的JSON)
Suffix