如何从 JSON 模式评估 JSON
How to evaluate JSON from JSON Schema
我熟悉使用 Apache NIFI 中的处理器 ValidateXML 使用 .XSD 来验证 .XML 文件。
如何将 XML 转换为 JSON,然后使用 JSON 模式验证输出的 JSON,该模式会产生与 [=24= 相同的结果] 验证 XML 文件?
是否有其他工具可以与 NIFI 一起使用来完成此任务?
解决方案 #1:
github 上有一个开源库,可让您将 XML schema
转换为 JSON
。
假设您有这样的 XML 架构:
<xsd:element name="purchaseOrder" type="PurchaseOrderType"/>
<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:element name="shipTo" type="USAddress"/>
<xsd:element name="billTo" type="USAddress"/>
<xsd:element ref="comment" minOccurs="0"/>
<xsd:element name="items" type="Items"/>
</xsd:sequence>
<xsd:attribute name="orderDate" type="xsd:date"/>
</xsd:complexType>
并且可以通过此命令完成转换:
java -jar jsonix-schema-compiler-full.jar
-generateJsonSchema
-p PO
schemas/purchaseorder.xsd
然后您可以使用结果来验证您 JSON,但是请记住,这不是一对一的映射。您可能需要稍微调整一下结果。
解决方案 #2:
您可以使用这个开源 lib 来做同样的事情。
您可以按照自述文件中的说明进行操作,但转换相同模式的用法为:
xsd2json /path/to/purchaseorder.xsd > /created/purchaseorder.json
希望对您有所帮助。
对于转换部分,您可以使用 this XSLT to transform the XML in to JSON via the TransformXml 处理器。
ValidateJson 处理器正在 NIFI-1893, in the meantime you can use ExecuteScript with the approach in this post, or use ExecuteStreamCommand with option #2 from @Yaser 的回答下工作。
我熟悉使用 Apache NIFI 中的处理器 ValidateXML 使用 .XSD 来验证 .XML 文件。
如何将 XML 转换为 JSON,然后使用 JSON 模式验证输出的 JSON,该模式会产生与 [=24= 相同的结果] 验证 XML 文件?
是否有其他工具可以与 NIFI 一起使用来完成此任务?
解决方案 #1:
github 上有一个开源库,可让您将 XML schema
转换为 JSON
。
假设您有这样的 XML 架构:
<xsd:element name="purchaseOrder" type="PurchaseOrderType"/>
<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:element name="shipTo" type="USAddress"/>
<xsd:element name="billTo" type="USAddress"/>
<xsd:element ref="comment" minOccurs="0"/>
<xsd:element name="items" type="Items"/>
</xsd:sequence>
<xsd:attribute name="orderDate" type="xsd:date"/>
</xsd:complexType>
并且可以通过此命令完成转换:
java -jar jsonix-schema-compiler-full.jar
-generateJsonSchema
-p PO
schemas/purchaseorder.xsd
然后您可以使用结果来验证您 JSON,但是请记住,这不是一对一的映射。您可能需要稍微调整一下结果。
解决方案 #2:
您可以使用这个开源 lib 来做同样的事情。
您可以按照自述文件中的说明进行操作,但转换相同模式的用法为:
xsd2json /path/to/purchaseorder.xsd > /created/purchaseorder.json
希望对您有所帮助。
对于转换部分,您可以使用 this XSLT to transform the XML in to JSON via the TransformXml 处理器。
ValidateJson 处理器正在 NIFI-1893, in the meantime you can use ExecuteScript with the approach in this post, or use ExecuteStreamCommand with option #2 from @Yaser 的回答下工作。