#java #smooks
Вопрос:
Единственный способ, который я нашел, — это edi, а не edifact, но когда я меняю smooks-config.xml с edifact
<smooks-resource-list
xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd"
xmlns:edifact="https://www.smooks.org/xsd/smooks/edifact-2.0.xsd">
<edifact:unparser unparseOnElement="/Order" schemaURI="/edi-to-xml-mapping.dfdl.xsd" segmentTerminator="%NL;" compositeDataElementSeparator="^"/>
<edifact:parser schemaURI="/edi-to-xml-order-mapping.dfdl.xsd" segmentTerminator="%NL;" dataElementSeparator="*"
compositeDataElementSeparator="^"/>
Я всегда получаю сообщение об ошибке: Ошибка определения схемы: нет документа схемы в location / EDIFACT-Interchange.dfdl.xsd.
Ответ №1:
Как описано в документах Smooks EDI cartridge, схема EDIFACT-Messages.dfdl.xsd DFDL должна быть импортирована. Например:
<?xml version="1.0"?>
<smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd"
xmlns:edifact="https://www.smooks.org/xsd/smooks/edifact-2.0.xsd">
<edifact:parser schemaURI="/d03b/EDIFACT-Messages.dfdl.xsd"/>
<edifact:unparser schemaURI="/d03b/EDIFACT-Messages.dfdl.xsd" unparseOnNode="/Interchange"/>
</smooks-resource-list>
Убедитесь, что соответствующий пакет схем находится в вашем Java classpath. Объявление зависимости Maven пакета схем для приведенного выше примера:
<dependency>
<groupId>org.smooks.cartridges.edi</groupId>
<artifactId>edifact-schemas</artifactId>
<version>2.0.0-M3</version>
<classifier>d03b</classifier>
</dependency>