Я хочу проанализировать транзакцию NCPDP D.0 в XML с помощью библиотеки smooks.
Я новичок в использовании библиотеки smooks и у меня возникают проблемы при попытке настроить поля фиксированной и динамической длины с помощью smooks.
Пример NCPDP D.0
https://docs.informatica.com/big-data-management/big-data-management/10-1/libraries-guide/descriptions-of-the-libraries/ncpdp-library/ncpdp-message-structure.html
Файл конфигурации smooks
<?xml version="1.1" encoding="UTF-8"?>
<smooks-resource-list
xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
xmlns:edi="http://www.milyn.org/xsd/smooks/edi-1.4.xsd">
<edi:reader mappingModel="ncpdp-to-xml-order-mapping.xml"/>
</smooks-resource-list>
ncpdp-to-xml-order-mapping.xml
<?xml version="1.1" encoding="UTF-8"?>
<medi:edimap xmlns:medi="http://www.milyn.org/schema/edi-message-mapping-1.2.xsd">
<medi:description name="Parse NCPDP to XML" version="1.0" />
<medi:delimiters segment="0x1E" field="0x1C" component="0x1D"
sub-component="~" />
<medi:segments xmltag="Segments">
<medi:segment segcode="00" xmltag="Header" truncatable="true">
<medi:field xmltag="Bin"/>
<medi:field xmltag="Version" />
<medi:field xmltag="TransactionCode" />
<medi:field xmltag="ProcessControlNumber" />
<medi:field xmltag="ServiceProviderIdQualifier" />
<medi:field xmltag="ServiceProviderId" />
<medi:field xmltag="DateOfService" />
<medi:field xmltag="Software" />
</medi:segment>
<medi:segment segcode="01" xmltag="PatientInformation" truncatable="true">
<medi:field xmltag="FirstName"/>
<medi:field xmltag="LastName" />
<medi:field xmltag="StreetAddress" />
<medi:field xmltag="City" />
<medi:field xmltag="State" />
<medi:field xmltag="Zipcode" />
<medi:field xmltag="PhoneNumber" />
</medi:segment>
<medi:segment segcode="07" xmltag="ClaimInformation" truncatable="true">
<medi:field xmltag="PrescriptionReferenceNumberQualifier"/>
<medi:field xmltag="PrescriptionReferenceNumber"/>
<medi:field xmltag="ProductServiceIdQualifier"/>
<medi:field xmltag="ProductServiceId"/>
<medi:field xmltag="QuantityDispensed"/>
<medi:field xmltag="FillNumber"/>
<medi:field xmltag="DaySupply"/>
<medi:field xmltag="CompoundCode"/>
<medi:field xmltag="DispenseAsWrittenProductSelectionCode"/>
<medi:field xmltag="DatePrescriptionWritten"/>
<medi:field xmltag="NumberOfRefillsAuthorized"/>
<medi:field xmltag="PrescriptionOriginCode"/>
<medi:field xmltag="UnitOfMeasure"/>
<medi:field xmltag="LevelOfService"/>
<medi:field xmltag="PatientAssignmentIndicator"/>
<medi:field xmltag="PharmacyServiceType"/>
</medi:segment>
<medi:segment segcode="11" xmltag="PricingInformation" truncatable="true">
<medi:field xmltag="IngredientCostSubmitted"/>
<medi:field xmltag="DispensingFeeSubmitted"/>
<medi:field xmltag="PatientPaidAmountSubmitted"/>
<medi:field xmltag="PercentageSalesTaxRateSubmitted"/>
<medi:field xmltag="UsualAndCustomaryCharge"/>
<medi:field xmltag="GrossAmountDue"/>
<medi:field xmltag="BasisOfCostDetermination"/>
</medi:segment>
</medi:segments>
</medi:edimap>
Библиотека Smooks должна иметь возможность анализировать утверждение NCPDP D.0 и преобразовывать его в XML.
Раздел заголовка в файле ncpdp-to-xml-order-mapping.xml имеет фиксированную длину,не знаете, как настроить smooks для анализа заголовка фиксированной длины.
Вот словарь для строки фиксированной длины.https://snag.gy/IgbxpW.jpg
Спасибо за вашу помощь.