Ниже приведена фиктивная JSON полезная нагрузка:
{
"transactionId":401,
"data":[
{
"order":1,
"operation":"INSERT",
"table":"TC_TND_PRIMARY",
"body":{
"tcTndPrimaryId":5006899,
"tndBoroId":4,
"code":"008288",
"tndPrimaryType":"S",
"groupCode":null
}
},
{
"order":2,
"operation":"INSERT",
"table":"TC_TND",
"body":{
"tcTndId":497841,
"tndBoroId":4,
"code":"008288",
"streetName":"NEW GOOD STREET",
"aliasVariation":0,
"prefix":"E",
"ending":"BAR",
"suffix":"SP",
"region":null,
"concatenatedFieldName":"E NEW GOOD STREET BAR SP"
}
}]
}
Как понятно, это массив объектов "data" и внутри "data" элемент "body" неисчислим. Его эквивалент xml показан ниже:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<transactionId>401</transactionId>
<data>
<order>1</order>
<operation>INSERT</operation>
<table>TC_TND_PRIMARY</table>
<body>
<tcTndPrimaryId>5006899</tcTndPrimaryId>
<tndBoroId>4</tndBoroId>
<code>008288</code>
<tndPrimaryType>S</tndPrimaryType>
<groupCode />
</body>
</data>
<data>
<order>2</order>
<operation>INSERT</operation>
<table>TC_TND</table>
<body>
<tcTndId>497841</tcTndId>
<tndBoroId>4</tndBoroId>
<code>008288</code>
<streetName>NEW GOOD STREET</streetName>
<aliasVariation>0</aliasVariation>
<prefix>E</prefix>
<ending>BAR</ending>
<suffix>SP</suffix>
<region />
<concatenatedFieldName>E NEW GOOD STREET BAR SP</concatenatedFieldName>
</body>
</data>
</root>
А сгенерированная схема (XSD) показана ниже:
<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.example.org"
targetNamespace="http://www.example.org" elementFormDefault="qualified">
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="transactionId" type="xsd:integer"/>
<xsd:element name="data" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="order" type="xsd:integer"/>
<xsd:element name="operation" type="xsd:string"/>
<xsd:element name="table" type="xsd:string"/>
<xsd:element name="body">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="tcTndPrimaryId" minOccurs="0" type="xsd:integer"/>
<xsd:element name="tndBoroId" type="xsd:integer"/>
<xsd:element name="code" type="xsd:integer"/>
<xsd:element name="tndPrimaryType" minOccurs="0" type="xsd:string"/>
<xsd:element name="groupCode" minOccurs="0"/>
<xsd:element name="tcTndId" type="xsd:integer"/>
<xsd:element name="streetName" type="xsd:string"/>
<xsd:element name="aliasVariation" type="xsd:integer"/>
<xsd:element name="prefix" type="xsd:string"/>
<xsd:element name="ending" type="xsd:string"/>
<xsd:element name="suffix" type="xsd:string"/>
<xsd:element name="region"/>
<xsd:element name="concatenatedFieldName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Поскольку схема объединяет все элементы. Но это не мое требование. Поскольку представленный API имеет другой входящий запрос, и сгенерированная схема оказывается другой. С json выше, я хочу другой набор данных в соответствии с данной «таблицей», и поэтому я буду работать с ними соответственно. Я подумал использовать здесь «выбор», чтобы отделить схему соответственно. Пожалуйста, предложите, как использовать выбор здесь. Или, если бы я мог использовать что-то еще, пожалуйста, предложите это тоже. enter code here