Настройка сопоставления типов данных
Когда вы получаете XML-файлы из внешнего источника, у вас есть некоторая гибкость в том, как AVM сопоставляет типы данных XML-элемента и атрибута с типами данных ABL. В этой части показано, как настроить сопоставление типов данных для определенных полей.
Существует два параметра, которые позволяют управлять сопоставлениями типов полей:
- override-default-mapping
- field-type-mapping
Если вы используете XML-схему, созданную OpenEdge, которая содержит расширение XML-схемы для полного определения ProDataSet, то эти параметры не нужны, так как отсутствует неоднозначность типов данных.
В следующей таблице показано сопоставление типов данных схемы XML с типами данных ABL по умолчанию.
Типы данных XML-схемы | Типы данных ProDataSet |
string | CHARACTER |
base64Binary
hexBinary |
RAW |
Параметр override-default-mapping является глобальным переключателем для всего что делает метод. Параметр сообщает AVM, что он должен сопоставить любую строку, base64Binary или поле hexBinary с полем CLOB или BLOB, как показано в таблице ниже.
Типы данных XML-схемы | Типы данных ProDataSet |
string | CLOB |
base64Binary
hexBinary |
BLOB |
Параметр field-type-mapping представляет собой необязательное символьное выражение, которое оценивается как список разделённых запятыми имён полей, пар типов данных с использованием следующего синтаксиса:
field-name-1, data-type-1 [, field-name-n, data-type-n ]
Этот параметр позволяет определить собственный список полей и типов данных, с которыми они должны быть сопоставлены, что позволяет быть более гибким, чем глобальное сопоставление типов данных для CLOB и BLOB, которые переопределяет параметр override-default-mapping.
Например, вы могли бы использовать field-type-mapping, если бы у вас было много строковых полей base64Binary или hexBinary, но вы хотели бы сопоставить только некоторые из них с CLOB и BLOB. Поэтому вы не будете использовать параметр override-default-mapping для этого, потому что он будет сопоставлять все поля с CLOB и BLOB. С помощью field-type-mapping вы можете указать несколько имён полей, которые вы хотите отобразить иначе, чем CHAR и RAW по умолчанию.