我正在使用带有 JSON 编码器的 BizTalk 管道将 XML 转换为 JSON。我已经创建了 XSD,但生成的 JSON 具有 #text 而不仅仅是我的元素的值。
任何想法我做错了什么?
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://BookingEngine.Schemas.JSONSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" name="affiliate_reference_id" type="xs:unsignedShort" />
<xs:element minOccurs="1" name="hold" type="xs:boolean" />
<xs:element minOccurs="1" maxOccurs="unbounded" name="rooms">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" name="email" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="1" maxOccurs="unbounded" name="payments">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" name="type" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="1" name="affiliate_metadata" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
转换为以下 JSON
{
"affiliate_reference_id": {
"#text": "4480"
},
"hold": {
"#text": "false"
},
"rooms": [
{
"email": "john@example.com"
}
],
"payments": [
{
"type": "customer_card"
}
]
}
预期的结果是
{
"affiliate_reference_id": "4480",
"hold": "false",
"rooms": [
{
"email": "john@example.com"
}
],
"payments": [
{
"type": "customer_card"
}
]
}
知道为什么会弹出#text 以及如何删除它吗?我需要在我的 XSD 架构中进行哪些更改?