entaxy-public/documentation/core/schema/Schema.adoc

18 KiB
Raw Permalink Blame History

Sсhema

Есть три типа ресурсов, которые можно загружать в шину и использовать в маршрутах:

  1. Валидационные типы ресурсов (нпрм xsd). Необходимы для валидации сообщения на соответствие той или иной схеме.

  2. Трансформационные типы ресурсов (нпрм xslt, amd). Необходимы для трасформации сообщений из одной схемы в другую.

  3. Ресурсы используемые для генерации сервисов (нпрм wsdl). Необходимы для поднятия сервиса на шине.

Для загрузки трансформационных ресурсов необходимо указывать, является ли данный трансформатор конвертором и схему-источник и схему-результат для неявного преобразования сообщения(конвертор может быть один и только один для пары: схема источник, схема результат) Схему-источник и схему-результат необходимо указывать только для конверторов, используемых в неявных преобразованиях

Желательно указывать или определять схему для коннектора, если предполагается использовать функционал неявных преобразований. Неявное преобразование будет работать, если:

  • в заголовке указана схема-источник

  • в заголовке указана схема-приемник

  • в реестре есть конвертор для этой пары схем

Указание схемы может попадать в заголовок неявно (из свойств коннектора или из тела сообщения) или явно через медиатор.

Схема работы с ресурсами.

Сначала загружаем сам ресурс в шину, который мы будем использовать в маршрутах.

Загружаем ресурс и получаем id, с помощью которого можно и нужно добавить служебную информацию! Также можно перезагрузить данный ресурс и удалять его из шины.

Также можно загружать служебную информацию, такую как название ресурса, его расширение и т д. Выгружать весь список ресурсов, и по отдельности выкачивать сам ресурс для анализа. Также использовать различные сортировки для поиска определенного типа ресурс.

Руководство по загрузке ресурсов в шину.

LoadResource.

Для загрузки ресурса в шину нужно использовать метод loadResource.

параметры:

  • resourceValue - сам ресурс, в формате base64

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Body>
      <reg:loadResourceRequest>
         <reg:resourceValue></reg:resourceValue>
      </reg:loadResourceRequest>
   </soapenv:Body>
</soapenv:Envelope>

ответ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <response xmlns="http://www.entaxy.ru/registry-schema-service/">1</response>
    </soap:Body>
</soap:Envelope>

GetResource.

Для выгрузки заранее загруженного ресурса в шину нужно использовать метод getResource.

параметры:

  • getResourceRequest - id ресурса, который вернулся при вызове метода LoadResource

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
    <soapenv:Header/>
    <soapenv:Body>
        <reg:getResourceRequest>1</reg:getResourceRequest>
    </soapenv:Body>
</soapenv:Envelope>

ответ

параметры:

  • id - это id ресурса

  • createdDate - дата создания ресурса

  • createdBy - логин, загрузивший ресурс в шину

  • editedDate - дата перезагрузки ресурса

  • editedBy - логин, перезагрузивший ресурс в шине

  • resourceValue - сам ресурс, в формате base64

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <FullResourceType xmlns="http://www.entaxy.ru/registry-schema-service/">
            <id>1</id>
            <createdDate>12/15/20, 1:11 AM</createdDate>
            <createdBy>12/15/20, 1:11 AM</createdBy>
            <editedDate>12/15/20, 1:18 AM</editedDate>
            <editedBy>12/15/20, 1:18 AM</editedBy>
            <resourceValue></resourceValue>
        </FullResourceType>
    </soap:Body>
</soap:Envelope>

ReloadResource.

Для перезагрузки ресурса в шину есть метод reloadResource.

параметры:

  • id - id ресурса, который вернулся при вызове метода LoadResource

  • resourceValue - сам ресурс, в формате base64

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Body>
      <reg:ResourceType>
         <reg:id>1</reg:id>
         <reg:resourceValue></reg:resourceValue>
      </reg:ResourceType>
   </soapenv:Body>
</soapenv:Envelope>

ответ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <response xmlns="http://www.entaxy.ru/registry-schema-service/">1</response>
    </soap:Body>
</soap:Envelope>

RemoveResource.

Для удаления ресурса в шине есть метод removeResource.

параметры:

  • id - id ресурса, который вернулся при вызове метода LoadResource

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Header/>
   <soapenv:Body>
      <reg:removeResourceRequest>1</reg:removeResourceRequest>
   </soapenv:Body>
</soapenv:Envelope>

ответ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <response xmlns="http://www.entaxy.ru/registry-schema-service/">1</response>
    </soap:Body>
</soap:Envelope>

LoadResourceInfo.

Для загрузки мета информации ресурса в шине есть метод loadResourceInfo.

параметры:

  • idResource - id ресурса, который вернулся при вызове метода LoadResource

  • name - имя ресурса вместе с расширением

  • version - версия ресурса

  • description - описание ресурса

  • convertor - является ли ресурс конвертором из одной схемы в другую

  • namespace - входное пространство имен

  • namespaceOut - выходное пространство имен, используется для трансформаций из одной схемы в другую

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Body>
      <reg:loadResourceInfoRequest>
         <reg:name>lama.xsd</reg:name>
         <reg:idResource>1</reg:idResource>
         <reg:version>1.0</reg:version>
         <reg:description>lama test</reg:description>
         <reg:convertor>false</reg:convertor>
         <reg:namespace>http:lama.xsd</reg:namespace>
         <reg:namespaceOut>l</reg:namespaceOut>
      </reg:loadResourceInfoRequest>
   </soapenv:Body>
</soapenv:Envelope>

ответ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <response xmlns="http://www.entaxy.ru/registry-schema-service/">1</response>
    </soap:Body>
</soap:Envelope>

GetResourceInfo.

Для получения мета информации ресурса в шине есть метод getResourceInfo.

параметры:

  • getResourceInfoRequest - id мета информации ресурса, который вернулся при вызове метода LoadResourceInfo

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Header/>
   <soapenv:Body>
      <reg:getResourceInfoRequest>1</reg:getResourceInfoRequest>
   </soapenv:Body>
</soapenv:Envelope>

ответ

параметры:

  • id - id мета информации ресурса, который вернулся при вызове метода LoadResourceInfo

  • idResource - id ресурса, который вернулся при вызове метода LoadResource

  • name - имя ресурса вместе с расширением

  • version - версия ресурса

  • description - описание ресурса

  • convertor - является ли ресурс конвертором из одной схемы в другую

  • namespace - входное пространство имен

  • namespaceOut - выходное пространство имен, используется для трансформаций из одной схемы в другую

  • createdDate - дата создания мета информации ресурса

  • createdBy - логин, загрузивший мета информацию ресурса в шину

  • editedDate - дата перезагрузки мета информации ресурса

  • editedBy - логин, перезагрузивший мета информацию ресурса в шине

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <getResourceInfoResponse xmlns="http://www.entaxy.ru/registry-schema-service/">
            <id>14</id>
            <name>lama.xsd</name>
            <idResource>14</idResource>
            <version>1.0</version>
            <description>lama test</description>
            <convertor>false</convertor>
            <namespace>http:lama.xsd</namespace>
            <namespaceOut>false</namespaceOut>
            <createdBy>?</createdBy>
            <createdDate>12/15/20, 1:33 AM</createdDate>
            <editedBy>?</editedBy>
            <editedDate>12/15/20, 1:35 AM</editedDate>
        </getResourceInfoResponse>
    </soap:Body>
</soap:Envelope>

EditResourceInfo.

Для корректирования мета информации ресурса в шине есть метод еditResourceInfo.

параметры:

  • id - id мета информации ресурса, который вернулся при вызове метода LoadResourceInfo

  • idResource - id ресурса, который вернулся при вызове метода LoadResource

  • name - имя ресурса вместе с расширением

  • version - версия ресурса

  • description - описание ресурса

  • convertor - является ли ресурс конвертором из одной схемы в другую

  • namespace - входное пространство имен

  • namespaceOut - выходное пространство имен, используется для трансформаций из одной схемы в другую

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Body>
      <reg:editResourceInfoRequest>
         <reg:id>1</reg:id>
         <reg:name>lama.xsd</reg:name>
         <reg:idResource>1</reg:idResource>
         <reg:version>1.0</reg:version>
         <reg:description>lama test</reg:description>
         <reg:convertor>false</reg:convertor>
         <reg:namespace>http:lama.xsd</reg:namespace>
         <reg:namespaceOut>l</reg:namespaceOut>
      </reg:editResourceInfoRequest>
   </soapenv:Body>
</soapenv:Envelope>

ответ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <response xmlns="http://www.entaxy.ru/registry-schema-service/">14</response>
    </soap:Body>
</soap:Envelope>

RemoveResourceInfo.

Для удаления мета информации ресурса в шине есть метод removeResourceInfo.

параметры:

  • id - id мета информации ресурса, который вернулся при вызове метода LoadResourceInfo

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Header/>
   <soapenv:Body>
      <reg:removeResourceInfoRequest>1</reg:removeResourceInfoRequest>
   </soapenv:Body>
</soapenv:Envelope>

ответ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <response xmlns="http://www.entaxy.ru/registry-schema-service/">1</response>
    </soap:Body>
</soap:Envelope>

GetResourceInfoList.

Для получения списка мета информации ресурсов в шине есть метод getResourceInfoList.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Header/>
   <soapenv:Body>
      <reg:getResourceInfoListRequest/>
   </soapenv:Body>
</soapenv:Envelope>

ответ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <getResourceInfoListResponse xmlns="http://www.entaxy.ru/registry-schema-service/">
            <ResourceInfoFullType>
                <id>1</id>
                <name>lama.xsd</name>
                <idResource>1</idResource>
                <version>1.0</version>
                <description>lama test</description>
                <convertor>false</convertor>
                <namespace>http:lama.xsd</namespace>
                <namespaceOut>l</namespaceOut>
                <createdBy>?</createdBy>
                <createdDate>12/14/20, 10:00 PM</createdDate>
            </ResourceInfoFullType>
        </getResourceInfoListResponse>
    </soap:Body>
</soap:Envelope>

GetResourceInfoListByName.

Для получения списка мета информации ресурсов по имени ресурса в шине есть метод getResourceInfoListByName.

параметры:

  • name - часть имени мета информации ресурса

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Header/>
   <soapenv:Body>
      <reg:getResourceInfoListByNameRequest>
         <reg:name>.xsd</reg:name>
      </reg:getResourceInfoListByNameRequest>
   </soapenv:Body>
</soapenv:Envelope>

ответ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <getResourceInfoListResponse xmlns="http://www.entaxy.ru/registry-schema-service/">
            <ResourceInfoFullType>
                <id>1</id>
                <name>lama.xsd</name>
                <idResource>1</idResource>
                <version>1.0</version>
                <description>lama test</description>
                <convertor>false</convertor>
                <namespace>http:lama.xsd</namespace>
                <namespaceOut>l</namespaceOut>
                <createdBy>?</createdBy>
                <createdDate>12/14/20, 10:00 PM</createdDate>
            </ResourceInfoFullType>
        </getResourceInfoListResponse>
    </soap:Body>
</soap:Envelope>

GetResourceInfoListByNamespace.

Для получения списка мета информации ресурсов по namespace ресурса в шине есть метод getResourceInfoListByNamespace.

параметры:

  • namespace - часть namespace мета информации ресурса

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:reg="http://www.entaxy.ru/registry-schema-service/">
   <soapenv:Header/>
   <soapenv:Body>
      <reg:getResourceInfoListByNamespaceRequest>
         <reg:namespace>lama</reg:namespace>
      </reg:getResourceInfoListByNamespaceRequest>
   </soapenv:Body>
</soapenv:Envelope>

ответ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <getResourceInfoListResponse xmlns="http://www.entaxy.ru/registry-schema-service/">
            <ResourceInfoFullType>
                <id>1</id>
                <name>lama.xsd</name>
                <idResource>1</idResource>
                <version>1.0</version>
                <description>lama test</description>
                <convertor>false</convertor>
                <namespace>http:lama.xsd</namespace>
                <namespaceOut>l</namespaceOut>
                <createdBy>?</createdBy>
                <createdDate>12/14/20, 10:00 PM</createdDate>
            </ResourceInfoFullType>
        </getResourceInfoListResponse>
    </soap:Body>
</soap:Envelope>