2016-12-15 3 views
0

Я знаком с использованием .XSD для проверки файла .XML с использованием процессора ValidateXML в Apache NIFI.Как оценить JSON от JSON Schema

Как преобразовать XML в JSON, а затем проверить полученный JSON с помощью схемы JSON, которая даст те же результаты, что и XSD, проверяющий XML-файл?

Есть ли другой инструмент, который я могу использовать с NIFI для выполнения этой задачи?

ответ

1

Для части преобразования вы можете использовать this XSLT для преобразования XML в JSON через процессор TransformXml.

процессор А ValidateJson в работах под NIFI-1893, в то же время вы можете использовать ExecuteScript с подходом в this post, или использовать ExecuteStreamCommand с опцией # 2 от ответа @Yaser «s.

+0

Благодарим вас за информацию @mattyb. Есть ли хорошее место для обновления обновлений на новых процессорах в ближайшее время? – SheperdsonBrown

0

Решение # 1:

Существует открытый источник Lib на 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 

Надеется, что вы это помогает.

+0

Спасибо @Yaser Адель Мехрабан, я в настоящее время изучаю решение №2, чтобы увидеть, реализует ли он трансформацию с ожидаемыми результатами. – SheperdsonBrown