Что такое фильтр проверки схемы?
Компонент «Проверка схемы» принимает входные данные XML и утверждает их на основе эталонного шаблона XSD.
Обычно вы можете поместить этот компонент перед другим обработчиком сообщений, например, соединителем, чтобы решить, следует ли обрабатывать приближающееся сообщение или случай, или нет, позволяя сообщению проходить вдоль потока, когда удовлетворяются утверждения канала, и включенный XML считается законным.
Базовая конфигурация:
- Путь к расположению схемы XSD.
- Фильтр проверки схемы использует библиотеки JAXP для подтверждения сообщения по шаблону. Вы должны указать путь, имя записи и расширение схемы или конструкций в свойстве Схемы.
- Кроме того, вы можете установить язык схемы на язык шаблонов для использования. Если не указано, по умолчанию используется XML-схема.
- Для ситуации, в которой вам нужно получить исключение или, возможно, вызвать другой поток, когда утверждение заканчивается, вы можете заключить канал утверждения строительства в канал сообщения, а затем использовать параметры «on Unaccepted» и «throwOnUnaccepted» для определения поведения.
Вы также можете быть заинтересованы в:
Mule 4: проверка схемы JSON
Пример проверки схемы в Mule 4
Посмотрите, как проверить полезную нагрузку XML с помощью компонента проверки схемы.
Пожалуйста, выполните следующие шаги:
Шаг 1:
Создайте новый проект Mule как XML_Schema_Validation
Шаг 2:
Интуитивно понятный соединитель слушателя HTTP, чтобы получить запрос на ваши серверы и дать номера хоста и порта. Здесь для хоста установлено значение localhost, а для порта — 8081. Протестируйте вашу связь и проверьте, используется ли порт или нет, и протестируйте его эффективно.
Шаг 3:
Установите путь как / схема.
Шаг 4:
Перетащите Компонент валидатора схемы.
Шаг 5:
Выберите язык схемы и также добавьте конфигурацию модуля.
ПРИМЕЧАНИЕ. Пример для схемы X12:
Схема имеет вид (file.xsd) расширения
XML
xxxxxxxxxx
1
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
<xs:element name="shiporder">
4
<xs:complexType>
5
<xs:sequence>
6
<xs:element name="orderperson" type="xs:string"></xs:element>
7
<xs:element name="shipto">
8
<xs:complexType>
9
<xs:sequence>
10
<xs:element name="name" type="xs:string"></xs:element>
11
<xs:element name="address" type="xs:string"></xs:element>
12
<xs:element name="city" type="xs:string"></xs:element>
13
<xs:element name="country" type="xs:string"></xs:element>
14
</xs:sequence>
15
</xs:complexType>
16
</xs:element>
17
<xs:element name="item" maxOccurs="unbounded">
18
<xs:complexType>
19
<xs:sequence>
20
<xs:element name="title" type="xs:string"></xs:element>
21
<xs:element name="note" type="xs:string" minOccurs="0"></xs:element>
22
<xs:element name="quantity" type="xs:positiveInteger"></xs:element>
23
<xs:element name="price" type="xs:decimal"></xs:element>
24
</xs:sequence>
25
</xs:complexType>
26
</xs:element>
27
</xs:sequence>
28
<xs:attribute name="orderid" type="xs:string" use="required"></xs:attribute>
29
</xs:complexType>
30
</xs:element>
31
</xs:schema>
Шаг 6:
Перетащите компонент средства ведения журнала и проверьте полезную нагрузку и проверьте, прошла ли проверка успешно или нет.
Шаг 7:
Запустить проект
Шаг 8:
Откройте почтальона и нажмите URL-адрес вашего сервиса, как показано HTTP: // локальный: 8081 / схема
Входная полезная нагрузка:
XML
xxxxxxxxxx
1
2
<shiporder orderid="????">
3
<orderperson>????</orderperson>
4
<shipto>
5
<name>????</name>
6
<address>????</address>
7
<city>????</city>
8
<country>????</country>
9
</shipto>
10
<item>
11
<title>????</title>
12
<note>????</note>
13
<quantity>2</quantity>
14
<price>2</price>
15
</item>
16
</shiporder>
Шаг 9:
Наши выходные данные как
Теперь мы рассмотрим весь поток проекта Mule, т.е. проверку схемы XML.
ПРИМЕЧАНИЕ. Полный код примера:
XML
1
2
3
<mule xmlns:xml-module="http://www.mulesoft.org/schema/mule/xml-module" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
4
xmlns:http="http://www.mulesoft.org/schema/mule/http"
5
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
6
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
7
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
8
http://www.mulesoft.org/schema/mule/xml-module http://www.mulesoft.org/schema/mule/xml-module/current/mule-xml-module.xsd">
9
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="dbbb34bf-6117-4011-b60c-aa75d5dcd7c3" >
10
<http:listener-connection host="0.0.0.0" port="8081" ></http:listener>
11
</http:listener-config>
12
<xml-module:config name="XML_Config" doc:name="XML Config" doc:id="51e521e5-6605-4582-9e7b-5dee2c3e4935" ></xml>
13
<flow name="schemaFlow" doc:id="7af00482-3d87-4845-9e78-d7eaed93ff45" >
14
<http:listener doc:name="Listener" doc:id="74a745e9-9b9e-4206-898c-f25767bad654" config-ref="HTTP_Listener_config" path="/schema"></http:listener>
15
<xml-module:validate-schema doc:name="Validate schema" doc:id="de9f9219-5637-428e-b2e1-a3f112473a54" config-ref="XML_Config" schemas="schemas\schema.xsd"></xml>
16
<logger level="INFO" doc:name="Logger" doc:id="e14bf687-9c23-44af-8805-887bbec127b3" message="#[payload]"></logger>
17
</flow>
18
</mule>
Вывод
Mule 4 сопровождает несколько обновлений и улучшений. Компонент проверки схемы в Mule 3 отличался от Mule 4 и был перераспределен для разработчиков. Таким образом, это просто выполнить и дает некоторые дополнительные моменты.
Дальнейшее чтение
Проверьте компоненты схемы JSON в Mule
Как использовать схему проверки JSON и обогащение сообщений в муле