2015-02-01 1 views
4

Я использую apacheervicemix, и я пытаюсь проверить XML-документ с верблюдом apache. У меня есть этот маршрут под названием students_route.xml:Как проверить xsd с помощью apache camel?

<?xml version="1.0" encoding="UTF-8"?> 
<blueprint 
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation=" 
    http://www.osgi.org/xmlns/blueprint/v1.0.0 
    http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> 
<camelContext xmlns="http://camel.apache.org/schema/blueprint"> 
<route> 
    <from uri="file:project/students.xml"/> 
    <doTry> 
    <to uri="validator:file:project/students.xsd"/> 
    <to uri="file:valid"/> 
    <doCatch> 
     <exception>org.apache.camel.ValidationException</exception> 
     <to uri="file:invalid"/> 
    </doCatch> 
    <doFinally> 
     <to uri="file:finally"/> 
    </doFinally> 
    </doTry> 
</route> 
</camelContext> 
</blueprint> 

я создал 3 директории под названием: действительные, недействительные и, наконец. После того, как я запустил в karaf «start students_route.xml», ничего не происходит. Когда я смотрю в журналы, я не получаю никаких ошибок только в таких сообщениях, как это: «Маршрут: route2 запущен и потребляется из: Endpoint [file: //project/students.xml]». Я предполагаю, что файл должен быть создан с допустимым/недействительным каталогов, является ли xml-файл действительным или нет.

Я новичок в этих технологиях, и я понятия не имею, как это сделать. Я бы очень признателен вам за вашу помощь. Заранее спасибо!

ответ

7

Вот рабочий пример:

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:camel="http://camel.apache.org/schema/blueprint" 
     xsi:schemaLocation=" 
     http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd 
     http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/spring/camel-blueprint.xsd"> 

    <camelContext xmlns="http://camel.apache.org/schema/blueprint"> 
     <route> 
      <from uri="file:flights/data-in?noop=false"/> 
      <doTry> 
       <to uri="validator:file:flights/schema/flight.xsd"/> 
       <to uri="file:flights/data-valid"/> 
       <doCatch> 
        <exception>org.apache.camel.ValidationException</exception> 
        <to uri="file:flights/data-invalid"/> 
       </doCatch> 
       <!-- 
       <doFinally> 
        <to uri="file:test/src/data/finally"/> 
       </doFinally> 
       --> 
      </doTry> 
     </route> 

    </camelContext> 

</blueprint> 

Удачи!

+0

Это сработало после того, как я изменил на Спасибо @emmerich – Dianna