Документация iSZN

pkXMLImp.sql

Сообщения об ошибках

Error_NoTagWithID

PROCEDURE Error_NoTagWithID(iID PLS_INTEGER);

Описание

Вызывает exception «Тег с ID=... не найден»;.

Error_NoAttribWithID

PROCEDURE Error_NoAttribWithID(iID PLS_INTEGER);

Описание

Вызывает exception «Атрибут с ID=... не найден»;.

Error_NoElementWithID

PROCEDURE Error_NoElementWithID(iID PLS_INTEGER);

Описание

Вызывает exception «Тег или атрибут с ID=... не найден»;.

Error_NoTagWithName

PROCEDURE Error_NoTagWithName(iOwnerID PLS_INTEGER, sName VARCHAR2, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Тег с именем не найден»;.

Error_NoTagWithNameOf

PROCEDURE Error_NoTagWithNameOf(iOwnerID PLS_INTEGER, sNames VARCHAR2, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Тег с именем из списка не найден»;.

Error_NoAttribWithName

PROCEDURE Error_NoAttribWithName(iOwnerID PLS_INTEGER, sName VARCHAR2, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Атрибут с именем не найден»;.

Error_NoElementWithName

PROCEDURE Error_NoElementWithName(iOwnerID PLS_INTEGER, sName VARCHAR2, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Тег или атрибут с именем не найден»;.

Error_TooManyTagsWithName

PROCEDURE Error_TooManyTagsWithName(iOwnerID PLS_INTEGER, sName VARCHAR2, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Несколько тегов с именем»;.

Error_MutuallyExclusiveTags

PROCEDURE Error_MutuallyExclusiveTags(iOwnerID PLS_INTEGER, sNames VARCHAR2, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Взаимоисключающие теги с именем из списка...»;.

Error_TooManyAttrsWithName

PROCEDURE Error_TooManyAttrsWithName(iOwnerID PLS_INTEGER, sName VARCHAR2, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Несколько атрибутов с именем»;.

Error_TooManyElemsWithName

PROCEDURE Error_TooManyElemsWithName(iOwnerID PLS_INTEGER, sName VARCHAR2, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Несколько тегов или атрибутов с именем»;.

Error_NoChildTag

PROCEDURE Error_NoChildTag(iOwnerID PLS_INTEGER, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Тег не имеет дочерних тегов»;.

Error_NoAttrib

PROCEDURE Error_NoAttrib(iOwnerID PLS_INTEGER, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Тег не имеет атрибутов»;.

Error_NoChildElement

PROCEDURE Error_NoChildElement(iOwnerID PLS_INTEGER, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Тег не имеет дочерних тегов и атрибутов»;.

Error_TooManyChildTags

PROCEDURE Error_TooManyChildTags(iOwnerID PLS_INTEGER, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Имеется более одного дочернего тега»;.

Error_TooManyAtribs

PROCEDURE Error_TooManyAtribs(iOwnerID PLS_INTEGER, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Тег имеет более одного атрибута»;.

Error_TooManyChildElements

PROCEDURE Error_TooManyChildElements(iOwnerID PLS_INTEGER, sNSURI VARCHAR2 := NULL);

Описание

Вызывает exception «Имеется более одного дочернего элемента»;.

Error_InvalidTagValue

PROCEDURE Error_InvalidTagValue(sTagName VARCHAR2, sTagValue VARCHAR2);

Описание

Вызывает exception «Недопустимое значение тега...»;.

Error_InvalidTagValue

PROCEDURE Error_InvalidTagValue(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, sTagValue VARCHAR2);

Описание

Вызывает exception «Недопустимое значение тега...» с указанием родительского тега;.

Error_InvalidAttrValue

PROCEDURE Error_InvalidAttrValue(iOwnerTagID PLS_INTEGER, sAttrName VARCHAR2, sAttrValue VARCHAR2);

Описание

Вызывает exception «Недопустимое значение атрибута...»;.

Функции для заполнения временной таблицы

ClearParsedXMLData

PROCEDURE ClearParsedXMLData(iComputeStatistics PLS_INTEGER);

Описание

Удаляет данные из таблицы r$_parsed_xml_data.
Параметры:

  • iComputeStatistics - выполнять ли пересчёт статистики после очистки таблицы (0-нет, 1-да).

ParseXMLFile

PROCEDURE ParseXMLFile(
    sFileDir VARCHAR2, sFileName VARCHAR2, iClearTable PLS_INTEGER, iComputeStatistics PLS_INTEGER, iExtractNSPrefix PLS_INTEGER,
    iMaxBatchSize PLS_INTEGER := 30, iCustomData PLS_INTEGER := NULL, iCommitBatch PLS_INTEGER := 1, iSaveIgnorableWS PLS_INTEGER := 0);
-- Загружает данные XML из CLOB и сохраняет их во временной таблице r$_parsed_xml_data.
-- Сочетания типа < декодируются.
-- Параметры:
--   bData              - текст XML-данных;
--   iClearTable        - удалять ли содержимое таблицы перед началом парсинга (0-нет, 1-да);
--   iComputeStatistics - выполнять ли пересчёт статистики после завершения разбора (0-нет, 1-да);
--   iExtractNSPrefix   - извлекать ли префикс пространства имён в отдельный столбец (0-нет, 1-да);
--   iMaxBatchSize      - максимальное количество записей, добавляемых/обновляемых за один приём;
--   iCustomData        - дополнительные пользовательские данные; помещаются без изменений в столбец custom_data;
--   iCommitBatch       - выполнять ли commit после каждой порции добавленых данных;
--   iSaveIgnorableWS   - сохранять ли игнорируемые пробелы (0/1).
PROCEDURE ParseXMLData(
    bData BLOB, iClearTable PLS_INTEGER, iComputeStatistics PLS_INTEGER, iExtractNSPrefix PLS_INTEGER,
    iMaxBatchSize PLS_INTEGER := 30, iCustomData PLS_INTEGER := NULL, iCommitBatch PLS_INTEGER := 1, iSaveIgnorableWS PLS_INTEGER := 0);
-- Заполняет ссылки на атрибуты пространства имён для всех тегов.
-- Параметры:
--   iNormalizeNSAttrValues - нормализовать ли значения атрибутов, определяющих пространство имён (0/1);
--   iComputeStatistics     - выполнить ли пересчёт статистики по таблице после заполнения ссылок (0/1);

Описание

Загружает данные из XML-файла и сохраняет их во временной таблице r$_parsed_xml_data.
Сочетания типа < декодируются.
Параметры:

  • sFileDir - каталог, в котором находится разбираемый файл;
  • sFileName - имя разбираемого файла;
  • iClearTable - удалять ли содержимое таблицы перед началом парсинга (0-нет, 1-да);
  • iComputeStatistics - выполнять ли пересчёт статистики после завершения разбора (0-нет, 1-да);
  • iExtractNSPrefix - извлекать ли префикс пространства имён в отдельный столбец (0-нет, 1-да);
  • iMaxBatchSize - максимальное количество записей, добавляемых/обновляемых за один приём;
  • iCustomData - дополнительные пользовательские данные; помещаются без изменений в столбец custom_data;
  • iCommitBatch - выполнять ли commit после каждой порции добавленых данных;
  • iSaveIgnorableWS - сохранять ли игнорируемые пробелы (0/1).

ParseXMLData

PROCEDURE ParseXMLData(
    bData BLOB, iClearTable PLS_INTEGER, iComputeStatistics PLS_INTEGER, iExtractNSPrefix PLS_INTEGER,
    iMaxBatchSize PLS_INTEGER := 30, iCustomData PLS_INTEGER := NULL, iCommitBatch PLS_INTEGER := 1, iSaveIgnorableWS PLS_INTEGER := 0);
-- Заполняет ссылки на атрибуты пространства имён для всех тегов.
-- Параметры:
--   iNormalizeNSAttrValues - нормализовать ли значения атрибутов, определяющих пространство имён (0/1);
--   iComputeStatistics     - выполнить ли пересчёт статистики по таблице после заполнения ссылок (0/1);
--   iRootTagID             - ID обрабатываемого корневого тега; если null, ссылки заполняются для всех тегов; если
--                            этот тег не является корневым, обработка не выполняется.
-- Чтобы расчёт был возможен, необходимо, чтобы при разборе XML префиксы пространства имён были извлечены в отдельный
-- столбец.
PROCEDURE ComputeNSAttribs(iNormalizeNSAttrValues PLS_INTEGER, iComputeStatistics PLS_INTEGER, iRootTagID PLS_INTEGER := NULL);
-- Очищает ссылки на атрибуты пространства имён для всех тегов.
-- Параметры:
--   iClearNSPrefix - очищать ли также префикс пространства имён (0/1).
-- TODO: Необходимо для консистентности добавить возможность задания корневого тега.
PROCEDURE ClearNSAttribs(iClearNSPrefix PLS_INTEGER);
-- Выполняет расчёт статистики по таблице r$_parsed_xml_data.
PROCEDURE AnalyzeParsedXMLData;
 
/*********************************************************************************************************************

Описание

Загружает данные XML из CLOB и сохраняет их во временной таблице r$_parsed_xml_data.
Сочетания типа < декодируются.
Параметры:

  • bData - текст XML-данных;
  • iClearTable - удалять ли содержимое таблицы перед началом парсинга (0-нет, 1-да);
  • iComputeStatistics - выполнять ли пересчёт статистики после завершения разбора (0-нет, 1-да);
  • iExtractNSPrefix - извлекать ли префикс пространства имён в отдельный столбец (0-нет, 1-да);
  • iMaxBatchSize - максимальное количество записей, добавляемых/обновляемых за один приём;
  • iCustomData - дополнительные пользовательские данные; помещаются без изменений в столбец custom_data;
  • iCommitBatch - выполнять ли commit после каждой порции добавленых данных;
  • iSaveIgnorableWS - сохранять ли игнорируемые пробелы (0/1).

ComputeNSAttribs

PROCEDURE ComputeNSAttribs(iNormalizeNSAttrValues PLS_INTEGER, iComputeStatistics PLS_INTEGER, iRootTagID PLS_INTEGER := NULL);

Описание

Заполняет ссылки на атрибуты пространства имён для всех тегов.
Параметры:

  • iNormalizeNSAttrValues - нормализовать ли значения атрибутов, определяющих пространство имён (0/1);
  • iComputeStatistics - выполнить ли пересчёт статистики по таблице после заполнения ссылок (0/1);
  • iRootTagID - ID обрабатываемого корневого тега; если null, ссылки заполняются для всех тегов; если этот тег не является корневым, обработка не выполняется.

Чтобы расчёт был возможен, необходимо, чтобы при разборе XML префиксы пространства имён были извлечены в отдельный
столбец.

ClearNSAttribs

PROCEDURE ClearNSAttribs(iClearNSPrefix PLS_INTEGER);

Описание

Очищает ссылки на атрибуты пространства имён для всех тегов.
Параметры:

  • iClearNSPrefix - очищать ли также префикс пространства имён (0/1).

TODO: Необходимо для консистентности добавить возможность задания корневого тега.

AnalyzeParsedXMLData

PROCEDURE AnalyzeParsedXMLData;

Описание

Выполняет расчёт статистики по таблице r$_parsed_xml_data.

Функции для извлечения значений из временной таблицы

GetRootTagID

FUNCTION GetRootTagID(iStrictExists PLS_INTEGER, iStrictUnique PLS_INTEGER, iCustomData PLS_INTEGER := NULL) RETURN PLS_INTEGER;

Описание

Возвращает ID корневого тега.
Параметры:

  • iStrictExists - определяет поведение при отсутствии корневого тега: вернуть null (0) или вызвать exception (1);
  • iStrictUnique - определяет поведение при наличии нескольких корневых тегов: вернуть null (0) или вызвать exception (1);
  • iCustomData - опциональный фильтр по пользовательским данным.

GetLastRootTagID

FUNCTION GetLastRootTagID RETURN PLS_INTEGER;

Описание

Возвращает максимальный ID корневого элемента. Если элементов нет, возвращает null.

GetTagName

FUNCTION GetTagName(iID PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;

Описание

Возвращает наименование элемента по его ID. При отсутствии элемента поведение определяется параметром iStrict.

GetFullTagName

FUNCTION GetFullTagName(iID PLS_INTEGER, sDelimiter VARCHAR2, iStrict PLS_INTEGER) RETURN VARCHAR2;

Описание

Возвращает полное наименование элемента по его ID. При отсутствии элемента поведение определяется параметром iStrict.

GetTagValue

FUNCTION GetTagValue(iID PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;

Описание

Возвращает значение элемента по его ID.
Если элемент имеется, но значение его отсутствует, возвращает null.
Параметры:

  • iID - ID элемента;
  • iStrict - определяет поведение при отсутствии тега с таким ID.

GetTagBigValue

FUNCTION GetTagBigValue(iID PLS_INTEGER, iStrict PLS_INTEGER) RETURN CLOB;

Описание

Возвращает значение элемента, даже если оно превышает по размеру 4000 символов, по его ID.
Если элемент имеется, но значение его отсутствует, возвращает null.
Параметры:

  • iID - ID элемента;
  • iStrict - определяет поведение при отсутствии элемента с таким ID.

GetTagBase64DecodedValue

FUNCTION GetTagBase64DecodedValue(iID PLS_INTEGER, iStrict PLS_INTEGER, iStrictValue PLS_INTEGER) RETURN BLOB;

Описание

Возвращает декодированное значение элемент с содержимым, закодированным в Base64.
Если элемент имеется, но значение его отсутствует, возвращает null.
Параметры:

  • iID - ID элемента;
  • iStrict - определяет поведение при отсутствии элемента с таким ID.
  • iStrictValue - определяет поведение при ошибке декодирования значения.

GetTagValues

FUNCTION GetTagValues(iiIDs uszn.TIntegerList) RETURN uszn.pkGen.TStrings4000;

Описание

Возвращает список значений тегов по их ID.
Параметры:

  • iiIDs - список ID тегов.

Если список ID тегов пустой или не инициализирован, возвращает пустой список.

GetTagNSURI

FUNCTION GetTagNSURI(iID PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;

Описание

Возвращает URI элемента по его ID.
Параметры:

  • iID - ID элемента;
  • iStrict - определяет поведение при отсутствии тега с таким ID.

GetTagNameAndNSURI

PROCEDURE GetTagNameAndNSURI(iID PLS_INTEGER, iStrict PLS_INTEGER, sTagName OUT VARCHAR2, sTagNSURI OUT VARCHAR2);

Описание

Возвращает полное имя элемента (имя и URI пространства имён) по его ID.
Параметры:

  • iID - ID элемента;
  • iStrict - определяет поведение при отсутствии тега с таким ID;
  • sTagName - локальное имя элемента (без учёта пространства имён);
  • sTagNSURI - URI пространства имён.

GetTagID

FUNCTION GetTagID(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iIncludeAttribs PLS_INTEGER := 1, iCaseAware PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Находит элемент с указанным наименованием среди дочерних элементов указанного владельца.
Параметры:

  • iOwnerTagID - ID родительского тега, в пределах которого осуществляется поиск; null - поиск корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sTagName - имя искомого элемента (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего элемента;
  • iIncludeAttribs - искать ли в том числе среди атрибутов (1) или только среди тегов (0);
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

GetNSTagID

FUNCTION GetNSTagID(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iIncludeAttribs PLS_INTEGER := 1, iCaseAware PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Находит элемент с указанным наименованием среди дочерних элементов указанного владельца с учётом пространства имён.
Параметры:

  • iOwnerTagID - ID родительского тега, в пределах которого осуществляется поиск; null - поиск корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sNSURI - значение URI пространства имён;
  • sTagName - имя искомого элемента (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего элемента;
  • iIncludeAttribs - искать ли в том числе среди атрибутов (1) или только среди тегов (0);
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

Необходимо, чтобы ссылки на атрибуты, определяющие пространства имён, были предварительно рассчитаны.

GetTagIDs

FUNCTION GetTagIDs(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, iIsAttrib PLS_INTEGER, iCaseAware PLS_INTEGER := 0) RETURN uszn.TIntegerList;

Описание

Возвращает список ID элементов по заданным критериям.
Параметры:

  • iOwnerTagID - ID родительского тега, начиная с которого осуществляется поиск; null - поиск начинается с корневых тегов; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sTagName - имя искомых элемента (без учёта регистра символов);
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1);
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

Если таких элементов нет, возвращает пустой список.

GetTagIDs

FUNCTION GetTagIDs(iOwnerTagIDs uszn.TIntegerList, sTagName VARCHAR2, iIsAttrib PLS_INTEGER, iCaseAware PLS_INTEGER := 0) RETURN uszn.TIntegerList;

Описание

Возвращает список ID элементов по заданным критериям.
Параметры:

  • iOwnerTagIDs - список ID родительских тегов;
  • sTagName - имя искомых элемента (без учёта регистра символов);
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1);
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

Если таких элементов нет, возвращает пустой список.

GetNSTagIDs

FUNCTION GetNSTagIDs(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sTagName VARCHAR2, iIsAttrib PLS_INTEGER, iCaseAware PLS_INTEGER := 0) RETURN uszn.TIntegerList;

Описание

Возвращает список ID элементов по заданным критериям с учётом пространства имён.
Параметры:

  • iOwnerTagID - ID родительского тега, начиная с которого осуществляется поиск; null - поиск начинается с корневых тегов; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sNSURI - значение URI пространства имён;
  • sTagName - имя искомых элемента (без учёта регистра символов);
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1);
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

Если таких элементов нет, возвращает пустой список.

GetNSTagIDs

FUNCTION GetNSTagIDs(iOwnerTagIDs uszn.TIntegerList, sNSURI VARCHAR2, sTagName VARCHAR2, iIsAttrib PLS_INTEGER, iCaseAware PLS_INTEGER := 0) RETURN uszn.TIntegerList;

Описание

Возвращает список ID элементов по заданным критериям с учётом пространства имён.
Параметры:

  • iOwnerTagIDs - список ID родительских тегов;
  • sNSURI - значение URI пространства имён;
  • sTagName - имя искомых элемента (без учёта регистра символов);
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1);
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

Если таких элементов нет, возвращает пустой список.

XPathToStr

FUNCTION XPathToStr(XPath IN uszn.TXPathNodeList, iIsAttrib PLS_INTEGER) RETURN VARCHAR2 deterministic;

Описание

Проиводит структурированное выражение XPath к текстовому виду.
Параметры:

  • XPath - структурированные данные;
  • iIsAttrib - признак того, что последний элемент XPath является атрибутом (0/1).

Если XPath не задан или пустой, возвращает null.

StrToXPath

PROCEDURE StrToXPath(sValue VARCHAR2, XPath OUT uszn.TXPathNodeList, iIsAttrib OUT PLS_INTEGER);

Описание

Выполняет разбор текстового выражения XPath.
Входные параметры:

  • sValue - текст XPath.

Выходные параметры:

  • XPath - структурированные данные XPath;
  • iIsAttrib - признак того, что последний элемент списка является атрибутом (0/1).

Поддерживается только ограниченный синтаксис:

  • последовательность тегов с опциональным атрибутом:
  • [<Tag1>[/<Tag2>]...][@<attr>]
  • только атрибут:
  • @<attr>

где <Tagn> и <attr> задаются в формате:

  • [префикс:]имя.

GetXPathTagIDs

FUNCTION GetXPathTagIDs(iOwnerTagID PLS_INTEGER, XPath IN uszn.TXPathNodeList, NSList IN uszn.TNamedStringValueList, iIsAttrib PLS_INTEGER) RETURN uszn.TIntegerList;

Описание

Возвращает список ID элементов по структурированному выражению XPath с учётом пространства имён.
Параметры:

  • iOwnerTagID - ID родительского тега, начиная с которого осуществляется поиск; null - поиск начинается с корневых тегов; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • XPath - последовательность искомых элементов; если для элемента в списке задано пространство имён, оно должно быть определено в списке NSList; если пространство имён элемента не задано, элемент в разобранных данных также должен быть без пространства имён;
  • NSList - список префиксов пространства имён, используемых в XPath: sName - имя префикса (с учётом регистра символов); sValue - URI пространства имён;
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1); применяется к последнему элементу списка.

Если таких элементов нет, возвращает пустой список.
Если XPath-выражение не задано, возникает exception.
Если для какого-либо из элементов XPath задано пространство имён, префикс которого отсутствует в списке NSList,
возникает exception.

GetXPathTagIDs

FUNCTION GetXPathTagIDs(iOwnerTagID PLS_INTEGER, sXPath VARCHAR2, NSList IN uszn.TNamedStringValueList) RETURN uszn.TIntegerList;

Описание

Аналогична предыдущей, но принимает на вход строку XPath в формате, поддерживаемом pkXMLImp.StrToXPath.

GetXPathTagID

FUNCTION GetXPathTagID(iOwnerTagID PLS_INTEGER, XPath IN uszn.TXPathNodeList, NSList IN uszn.TNamedStringValueList, iIsAttrib PLS_INTEGER, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает ID элемента по структурированному выражению XPath с учётом пространства имён.
Параметры:

  • iOwnerTagID - ID родительского тега, начиная с которого осуществляется поиск; null - поиск начинается с корневых тегов; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • XPath - последовательность искомых элементов; если для элемента в списке задано пространство имён, оно должно быть определено в списке NSList; если пространство имён элемента не задано, элемент в разобранных данных также должен быть без пространства имён;
  • NSList - список префиксов пространства имён, используемых в XPath: sName - имя префикса (с учётом регистра символов); sValue - URI пространства имён;
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1); применяется к последнему элементу списка.
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего элемента.

Если XPath-выражение не задано, возникает exception.
Если для какого-либо из элементов XPath задано пространство имён, префикс которого отсутствует в списке NSList,
возникает exception.

GetXPathTagID

FUNCTION GetXPathTagID(iOwnerTagID PLS_INTEGER, sXPath VARCHAR2, NSList IN uszn.TNamedStringValueList, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Аналогична предыдущей, но принимает на вход строку XPath в формате, поддерживаемом pkXMLImp.StrToXPath.

GetXPathTagValue

FUNCTION GetXPathTagValue(iOwnerTagID PLS_INTEGER, XPath IN uszn.TXPathNodeList, NSList IN uszn.TNamedStringValueList, iIsAttrib PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;

Описание

Возвращает значение элемента по структурированному выражению XPath.
Параметры:

  • iOwnerTagID - ID родительского тега, начиная с которого осуществляется поиск; null - поиск начинается с корневых тегов; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • XPath - последовательность искомых элементов; если для элемента в списке задано пространство имён, оно должно быть определено в списке NSList; если пространство имён элемента не задано, элемент в разобранных данных также должен быть без пространства имён;
  • NSList - список префиксов пространства имён, используемых в XPath: sName - имя префикса (с учётом регистра символов); sValue - URI пространства имён;
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1); применяется к последнему элементу списка.
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего элемента.

Если XPath-выражение не задано, возникает exception.
Если для какого-либо из элементов XPath задано пространство имён, префикс которого отсутствует в списке NSList,
возникает exception.

GetXPathTagValue

FUNCTION GetXPathTagValue(iOwnerTagID PLS_INTEGER, sXPath VARCHAR2, NSList IN uszn.TNamedStringValueList, iStrict PLS_INTEGER) RETURN VARCHAR2;

Описание

Аналогична предыдущей, но принимает на вход строку XPath в формате, поддерживаемом pkXMLImp.StrToXPath.

GetXPathTagValueInt

FUNCTION GetXPathTagValueInt(iOwnerTagID PLS_INTEGER, XPath IN uszn.TXPathNodeList, NSList IN uszn.TNamedStringValueList, iIsAttrib PLS_INTEGER, iStrict PLS_INTEGER, iStrictValue PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает значение элемента по структурированному выражению XPath, приведённое к целому.
Параметры:

  • iOwnerTagID - ID родительского тега, начиная с которого осуществляется поиск; null - поиск начинается с корневых тегов; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • XPath - последовательность искомых элементов; если для элемента в списке задано пространство имён, оно должно быть определено в списке NSList; если пространство имён элемента не задано, элемент в разобранных данных также должен быть без пространства имён;
  • NSList - список префиксов пространства имён, используемых в XPath: sName - имя префикса (с учётом регистра символов); sValue - URI пространства имён;
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1); применяется к последнему элементу списка.
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего элемента;
  • iStrictValue - определяет поведение в том случае, если значение элемента не удаётся привести к целому.

Если XPath-выражение не задано, возникает exception.
Если для какого-либо из элементов XPath задано пространство имён, префикс которого отсутствует в списке NSList,
возникает exception.

GetXPathTagValueInt

FUNCTION GetXPathTagValueInt(iOwnerTagID PLS_INTEGER, sXPath VARCHAR2, NSList IN uszn.TNamedStringValueList, iStrict PLS_INTEGER, iStrictValue PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Аналогична предыдущей, но принимает на вход строку XPath в формате, поддерживаемом pkXMLImp.StrToXPath.

GetXPathTagValueNum

FUNCTION GetXPathTagValueNum(iOwnerTagID PLS_INTEGER, XPath IN uszn.TXPathNodeList, NSList IN uszn.TNamedStringValueList, iIsAttrib PLS_INTEGER, iStrict PLS_INTEGER, iStrictValue PLS_INTEGER) RETURN NUMBER;

Описание

Возвращает значение элемента по структурированному выражению XPath, приведённое к числу.
Параметры:

  • iOwnerTagID - ID родительского тега, начиная с которого осуществляется поиск; null - поиск начинается с корневых тегов; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • XPath - последовательность искомых элементов; если для элемента в списке задано пространство имён, оно должно быть определено в списке NSList; если пространство имён элемента не задано, элемент в разобранных данных также должен быть без пространства имён;
  • NSList - список префиксов пространства имён, используемых в XPath: sName - имя префикса (с учётом регистра символов); sValue - URI пространства имён;
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1); применяется к последнему элементу списка.
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего элемента;
  • iStrictValue - определяет поведение в том случае, если значение элемента не удаётся привести к числу.

Если XPath-выражение не задано, возникает exception.
Если для какого-либо из элементов XPath задано пространство имён, префикс которого отсутствует в списке NSList,
возникает exception.

GetXPathTagValueNum

FUNCTION GetXPathTagValueNum(iOwnerTagID PLS_INTEGER, sXPath VARCHAR2, NSList IN uszn.TNamedStringValueList, iStrict PLS_INTEGER, iStrictValue PLS_INTEGER) RETURN NUMBER;

Описание

Аналогична предыдущей, но принимает на вход строку XPath в формате, поддерживаемом pkXMLImp.StrToXPath.

GetXPathTagValueDate

FUNCTION GetXPathTagValueDate(iOwnerTagID PLS_INTEGER, XPath IN uszn.TXPathNodeList, NSList IN uszn.TNamedStringValueList, iIsAttrib PLS_INTEGER, iStrict PLS_INTEGER, iStrictValue PLS_INTEGER) RETURN DATE;

Описание

Возвращает значение элемента по структурированному выражению XPath, приведённое к дате.
Параметры:

  • iOwnerTagID - ID родительского тега, начиная с которого осуществляется поиск; null - поиск начинается с корневых тегов; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • XPath - последовательность искомых элементов; если для элемента в списке задано пространство имён, оно должно быть определено в списке NSList; если пространство имён элемента не задано, элемент в разобранных данных также должен быть без пространства имён;
  • NSList - список префиксов пространства имён, используемых в XPath: sName - имя префикса (с учётом регистра символов); sValue - URI пространства имён;
  • iIsAttrib - должны ли искомые элементы быть атрибутами (0/1); применяется к последнему элементу списка.
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего элемента;
  • iStrictValue - определяет поведение в том случае, если значение элемента не удаётся привести к дате.

Если XPath-выражение не задано, возникает exception.
Если для какого-либо из элементов XPath задано пространство имён, префикс которого отсутствует в списке NSList,
возникает exception.
Дата должна быть в формате ISO: yyyy-mm-dd.

GetXPathTagValueDate

FUNCTION GetXPathTagValueDate(iOwnerTagID PLS_INTEGER, sXPath VARCHAR2, NSList IN uszn.TNamedStringValueList, iStrict PLS_INTEGER, iStrictValue PLS_INTEGER) RETURN DATE;

Описание

Аналогична предыдущей, но принимает на вход строку XPath в формате, поддерживаемом pkXMLImp.StrToXPath.

GetAttribID

FUNCTION GetAttribID(iOwnerTagID PLS_INTEGER, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Находит атрибут с указанным наименованием среди дочерних элементов указанного владельца.
Параметры:

  • iOwnerTagID - ID родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sAttribName - имя искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего атрибута;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

GetNSAttribID

FUNCTION GetNSAttribID(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Находит атрибут с указанным наименованием среди дочерних элементов указанного владельца с учётом пространства имён.
Параметры:

  • iOwnerTagID - ID родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sNSURI - значение URI пространства имён;
  • sAttribName - имя искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего атрибута;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

GetChildTagID

FUNCTION GetChildTagID(iOwnerTagID PLS_INTEGER, iStrict PLS_INTEGER := 0, iIncludeAttribs PLS_INTEGER := 1) RETURN PLS_INTEGER;

Описание

Находит ID единственного дочернего элемента у указанного владельца.
Параметры:

  • iOwnerTagID - ID родительского тега, в пределах которого осуществляется поиск; null - поиск корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего элемента;
  • iIncludeAttribs - искать ли в том числе среди атрибутов (1) или только среди тегов (0).

GetNSChildTagID

FUNCTION GetNSChildTagID(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, iStrict PLS_INTEGER := 0, iIncludeAttribs PLS_INTEGER := 1) RETURN PLS_INTEGER;

Описание

Находит ID единственного дочернего элемента с заданным пространством имён у указанного владельца.
Параметры:

  • iOwnerTagID - ID родительского тега, в пределах которого осуществляется поиск; null - поиск корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sNSURI - значение URI пространства имён;
  • iStrict - определяет поведение при отсутствии или наличии более одного подходящего элемента;
  • iIncludeAttribs - искать ли в том числе среди атрибутов (1) или только среди тегов (0).

GetTagValueByName

FUNCTION GetTagValueByName(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iIncludeAttribs PLS_INTEGER := 1, iCaseAware PLS_INTEGER := 0) RETURN VARCHAR2;

Описание

Возвращает значение элемента с указанным именем.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск значения корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sTagName - наименование искомого элемента (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии элемента с таким наименованием или наличии более одного элемента с разными значениями;
  • iIncludeAttribs - искать ли в том числе среди атрибутов (1) или только среди тегов (0);
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

GetTagValueIntByName

FUNCTION GetTagValueIntByName(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Возвращает значение тега с указанным именем, приведённое к целому.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск значения корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sTagName - наименование искомого тега (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии тега с таким наименованием или наличии более одного тега с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение тега не удаётся привести к целому;
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

GetTagValueNumByName

FUNCTION GetTagValueNumByName(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN NUMBER;

Описание

Возвращает значение тега с указанным именем, приведённое к числу.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск значения корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sTagName - наименование искомого тега (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии тега с таким наименованием или наличии более одного тега с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение тега не удаётся привести к числу;
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

GetTagValueDateByName

FUNCTION GetTagValueDateByName(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN DATE;

Описание

Возвращает значение тега с указанным именем, приведённое к дате.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск значения корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sTagName - наименование искомого тега (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии тега с таким наименованием или наличии более одного тега с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение тега не удаётся привести к дате;
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

Дата должна быть в формате ISO: yyyy-mm-dd.

GetTagValueBase64ByName

FUNCTION GetTagValueBase64ByName(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN BLOB;

Описание

Возвращает значение тега с двоичным содержимым, закодированным в Base64.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск среди дочерних элементов корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sTagName - наименование искомого тега (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии тега с таким наименованием или наличии более одного тега с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение тега не удаётся раскодировать;
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

GetNSTagValueByName

FUNCTION GetNSTagValueByName(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iIncludeAttribs PLS_INTEGER := 1, iCaseAware PLS_INTEGER := 0) RETURN VARCHAR2;

Описание

Возвращает значение элемента с указанным именем с учётом пространства имён.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск среди дочерних элементов корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sNSURI - значение URI пространства имён;
  • sTagName - наименование искомого элемента (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии элемента с таким наименованием или наличии более одного элемента с разными значениями;
  • iIncludeAttribs - искать ли в том числе среди атрибутов (1) или только среди тегов (0);
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

GetNSTagValueIntByName

FUNCTION GetNSTagValueIntByName(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Возвращает значение тега с указанным именем с учётом пространства имён, приведённое к целому.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск среди дочерних элементов корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sNSURI - значение URI пространства имён;
  • sTagName - наименование искомого тега (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии тега с таким наименованием или наличии более одного тега с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение тега не удаётся привести к целому;
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

GetNSTagValueNumByName

FUNCTION GetNSTagValueNumByName(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN NUMBER;

Описание

Возвращает значение тега с указанным именем с учётом пространства имён, приведённое к числу.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск среди дочерних элементов корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sNSURI - значение URI пространства имён;
  • sTagName - наименование искомого тега (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии тега с таким наименованием или наличии более одного тега с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение тега не удаётся привести к числу;
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

GetNSTagValueDateByName

FUNCTION GetNSTagValueDateByName(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN DATE;

Описание

Возвращает значение тега с указанным именем с учётом пространства имён, приведённое к дате.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск среди дочерних элементов корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sNSURI - значение URI пространства имён;
  • sTagName - наименование искомого тега (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии тега с таким наименованием или наличии более одного тега с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение тега не удаётся привести к дате;
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

Дата должна быть в формате ISO: yyyy-mm-dd.

GetNSTagValueBase64ByName

FUNCTION GetNSTagValueBase64ByName(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sTagName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN BLOB;

Описание

Возвращает значение тега с двоичным содержимым, закодированным в Base64.
Параметры:

  • iOwnerTagID - id родительского тега; null - поиск среди дочерних элементов корневого тега; если значение отрицательно, поиск производится по всей таблице без учёта родительского тега;
  • sNSURI - значение URI пространства имён;
  • sTagName - наименование искомого тега (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии тега с таким наименованием или наличии более одного тега с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение тега не удаётся раскодировать;
  • iCaseAware - учитывать ли регистр символов в имени тега (0/1).

GetAttribValueByName

FUNCTION GetAttribValueByName(iOwnerTagID PLS_INTEGER, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN VARCHAR2;

Описание

Возвращает значение атрибута с указанным именем у указанного тега-владельца.
Параметры:

  • iOwnerTagID - id родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта тега-владельца;
  • sAttribName - наименование искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии атрибута с таким наименованием или наличии более одного атрибута с разными значениями;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

GetAttribValueIntByName

FUNCTION GetAttribValueIntByName(iOwnerTagID PLS_INTEGER, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Возвращает значение атрибута с указанным именем, приведённое к целому, у указанного тега-владельца.
Параметры:

  • iOwnerTagID - id родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта тега-владельца;
  • sAttribName - наименование искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии атрибута с таким наименованием или наличии более одного атрибута с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение атрибута не удаётся привести к целому;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

GetAttribValueNumByName

FUNCTION GetAttribValueNumByName(iOwnerTagID PLS_INTEGER, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN NUMBER;

Описание

Возвращает значение атрибута с указанным именем, приведённое к числу, у указанного тега-владельца.
Параметры:

  • iOwnerTagID - id родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта тега-владельца;
  • sAttribName - наименование искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии атрибута с таким наименованием или наличии более одного атрибута с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение атрибута не удаётся привести к числу;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

GetAttribValueDateByName

FUNCTION GetAttribValueDateByName(iOwnerTagID PLS_INTEGER, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN DATE;

Описание

Возвращает значение атрибута с указанным именем, приведённое к дате, у указанного тега-владельца.
Параметры:

  • iOwnerTagID - id родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта тега-владельца;
  • sAttribName - наименование искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии атрибута с таким наименованием или наличии более одного атрибута с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение атрибута не удаётся привести к дате;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

Дата должна быть в формате ISO: yyyy-mm-dd.

GetNSAttribValueByName

FUNCTION GetNSAttribValueByName(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN VARCHAR2;

Описание

Возвращает значение атрибута с указанным именем у указанного тега-владельца с учётом пространства имён.
Параметры:

  • iOwnerTagID - id родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта тега-владельца;
  • sNSURI - значение URI пространства имён;
  • sAttribName - наименование искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии атрибута с таким наименованием или наличии более одного атрибута с разными значениями;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

GetNSAttribValueIntByName

FUNCTION GetNSAttribValueIntByName(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Возвращает значение атрибута с указанным именем, приведённое к целому, у указанного тега-владельца с учётом
пространства имён.
Параметры:

  • iOwnerTagID - id родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта тега-владельца;
  • sNSURI - значение URI пространства имён;
  • sAttribName - наименование искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии атрибута с таким наименованием или наличии более одного атрибута с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение атрибута не удаётся привести к целому;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

GetNSAttribValueNumByName

FUNCTION GetNSAttribValueNumByName(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN NUMBER;

Описание

Возвращает значение атрибута с указанным именем, приведённое к числу, у указанного тега-владельца с учётом
пространства имён.
Параметры:

  • iOwnerTagID - id родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта тега-владельца;
  • sNSURI - значение URI пространства имён;
  • sAttribName - наименование искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии атрибута с таким наименованием или наличии более одного атрибута с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение атрибута не удаётся привести к числу;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

GetNSAttribValueDateByName

FUNCTION GetNSAttribValueDateByName(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sAttribName VARCHAR2, iStrict PLS_INTEGER := 0, iStrictValue PLS_INTEGER := 0, iCaseAware PLS_INTEGER := 0) RETURN DATE;

Описание

Возвращает значение атрибута с указанным именем, приведённое к дате, у указанного тега-владельца с учётом
пространства имён.
Параметры:

  • iOwnerTagID - id родительского тега; если значение отрицательно, поиск производится по всей таблице без учёта тега-владельца;
  • sNSURI - значение URI пространства имён;
  • sAttribName - наименование искомого атрибута (без учёта регистра символов);
  • iStrict - определяет поведение при отсутствии атрибута с таким наименованием или наличии более одного атрибута с разными значениями;
  • iStrictValue - определяет поведение в том случае, если значение атрибута не удаётся привести к дате;
  • iCaseAware - учитывать ли регистр символов в имени атрибута (0/1).

Дата должна быть в формате ISO: yyyy-mm-dd.

GetChunkedTagData

FUNCTION GetChunkedTagData(iChunksTagID PLS_INTEGER) RETURN CLOB;

Описание

Собирает двоичные данные, разбитые на фрагменты, в единый CLOB.
Фрагменты должны содержаться в виде значений тегов <chunk>.
Количество фрагментов контролируется атрибутом count.
Нумерация фрагментов - от 1 до count, номера хранятся в атрибутах orderNum каждого тега <chunk>.
Параметры:

  • iChunksTagID - ID тега <chunks>.

Пример:

  • <chunks count=“4” encoding=“base64”> <chunk orderNum=“1”>0KLQtdGB0YLQ</chunk> <chunk orderNum=“2”>vtCy0YvQtSDQ</chunk> <chunk orderNum=“3”>tNCw0L3QvdGL</chunk> <chunk orderNum=“4”>0LU=</chunk>
  • </chunks>

Атрибут encoding не анализируется и предназначен для функции GetChunkedBlobTagData.

GetChunkedBlobTagData

FUNCTION GetChunkedBlobTagData(iTagID PLS_INTEGER, iCheckMD5Mode PLS_INTEGER) RETURN BLOB;

Описание

Собирает двоичные данные, разбитые на фрагменты, в единый BLOB.
Параметры:

  • iTagID - ID тега с двоичными данными;
  • iCheckMD5Mode - режим проверки контрольной суммы: 0 - не проверять; 1 - проверять всегда; 2 - проверять при наличии атрибута md5.

Пример:

  • <BinaryData size=“29” md5=“fe9c0a4e84e3f7e35f9521a02372495b”> <chunks count=“4” encoding=“base64”> <chunk orderNum=“1”>0KLQtdGB0YLQ</chunk> <chunk orderNum=“2”>vtCy0YvQtSDQ</chunk> <chunk orderNum=“3”>tNCw0L3QvdGL</chunk> <chunk orderNum=“4”>0LU=</chunk> </chunks>
  • </BinaryData>

Если атрибут “size” отсутствует, размер данных не анализируется.

Обратное преобразование разобранных данных в XML

DeleteTag

PROCEDURE DeleteTag(iTagID PLS_INTEGER);

Описание

Рекурсивно удаляет из разобранных данных тег и все его дочерние элементы.
Параметры:

  • iTagID - ID удаляемого тега.

Если тега с таким ID нет, ничего не делает.

DeleteChildTags

PROCEDURE DeleteChildTags(iTagID PLS_INTEGER);

Описание

Рекурсивно удаляет из разобранных данных все дочерние теги указанного тега.
Атрибуты тега, если они есть, остаются.
Параметры:

  • iTagID - ID тега.

Если тега с таким ID нет, ничего не делает.

AddTag

FUNCTION AddTag(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, sTagValue VARCHAR2) RETURN PLS_INTEGER;

Описание

Добавляет дочерний тег без учёта пространства имен.
Параметры:

  • iOwnerTagID - ID родительского тега; null, если требуется добавить корневой тег;
  • sTagName - имя добавляемого тега;
  • sTagValue - значение добавляемого тега; может быть пустым.

Возвращает ID созданного тега.

AddBigTag

FUNCTION AddBigTag(iOwnerTagID PLS_INTEGER, sTagName VARCHAR2, cTagValue CLOB) RETURN PLS_INTEGER;

Описание

Аналогична pkXMLImp.AddTag, но используется для добавления тега, значение которого длиннее 4000 символов.

AddNSTag

FUNCTION AddNSTag(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sTagName VARCHAR2, sTagValue VARCHAR2) RETURN PLS_INTEGER;

Описание

Добавляет дочерний тег с указанным пространством имен.
Параметры:

  • iOwnerTagID - ID родительского тега;
  • sNSURI - URI пространства имён добавляемого тега;
  • sTagName - имя добавляемого тега;
  • sTagValue - значение добавляемого тега; может быть пустым.

Возвращает ID созданного тега.
Пространство имён должно быть уже доступно в контексте родительского тега, иначе возникает exception.

AddNSBigTag

FUNCTION AddNSBigTag(iOwnerTagID PLS_INTEGER, sNSURI VARCHAR2, sTagName VARCHAR2, cTagValue CLOB) RETURN PLS_INTEGER;

Описание

Аналогична pkXMLImp.AddNSTag, но используется для добавления тега, значение которого длиннее 4000 символов.

AddAttrib

FUNCTION AddAttrib(iTagID PLS_INTEGER, sAttrName VARCHAR2, sAttrValue VARCHAR2) RETURN PLS_INTEGER;

Описание

Добавляет тегу атрибут без учёта пространства имен.
Параметры:

  • iTagID - ID тега;
  • sAttrName - имя добавляемого атрибута;
  • sAttrValue - значение добавляемого атрибута; может быть пустым.

Возвращает ID созданного атрибута.
Если элемента с таким ID не существует или он не является тегом, возникает exception.

AddNSAttrib

FUNCTION AddNSAttrib(iTagID PLS_INTEGER, sNSURI VARCHAR2, sAttrName VARCHAR2, sAttrValue VARCHAR2) RETURN PLS_INTEGER;

Описание

Добавляет тегу атрибут с указанным пространством имен.
Параметры:

  • iTagID - ID тега;
  • sNSURI - URI пространства имён добавляемого атрибута;
  • sAttrName - имя добавляемого атрибута;
  • sAttrValue - значение добавляемого атрибута; может быть пустым.

Возвращает ID созданного атрибута.
Если элемента с таким ID не существует или он не является тегом, возникает exception.

ReplaceElementValue

PROCEDURE ReplaceElementValue(iElementID PLS_INTEGER, sValue VARCHAR2);

Описание

Заменяет значение элемента на новое. Элемент может быть тегом или атрибутом.
Параметры:

  • iElementID - ID элемента;
  • sValue - новое значение элемента.

Если старое значение имело длину более 4000 символов, оно также удаляется и заменяется новым.
Если элемента с таким ID не существует, возникает exception.

ReplaceElementBigValue

PROCEDURE ReplaceElementBigValue(iElementID PLS_INTEGER, cValue CLOB);

Описание

Аналогична pkXMLImp.ReplaceElementValue, но новое значение может иметь длину свыше 4000 символов.

CreateXMLData

FUNCTION CreateXMLData(
    iRootTagID PLS_INTEGER, sEncoding VARCHAR2, iAddHeader PLS_INTEGER,
    iNSAware PLS_INTEGER, sIndent VARCHAR2, sNewLine VARCHAR2 := CHR(13)||Chr(10)) RETURN CLOB;

Описание

Преобразует содержимое временной таблицы с разобранными XML-данными в CLOB.
Параметры:

  • iRootTagID - ID корневого тега; если null, должен существовать единственный корневой тег;
  • sEncoding - наименование кодировки выходного файла; на данный момент поддерживаются только два значения: UTF-8 и WINDOWS-1251; если null, используется кодировка UTF-8;
  • iAddHeader - добавлять ли псевдотег <?xml version=...?> (0/1);
  • iNSAware - учитывать ли префиксы пространства имён (0/1);
  • sIndent - символ (символы) отступа для оформления иерархии тегов; если null, то отступы не добавляются;
  • sNewLine - символ (символы) перевода строки; если null, то файл создаётся без перевода строк.

WriteXMLFile

PROCEDURE WriteXMLFile(
    sFileDir VARCHAR2, sFileName VARCHAR2, iRootTagID PLS_INTEGER, sEncoding VARCHAR2, iAddHeader PLS_INTEGER,
    iNSAware PLS_INTEGER, sIndent VARCHAR2, sNewLine VARCHAR2 := CHR(13)||Chr(10));
 
END;
 
/
CREATE OR REPLACE PACKAGE BODY uszn.pkXMLImp IS
 
-- Список ID атрибутов, определяющих пространства имён; индекс=префикс пространства имён, значение=ID атрибута
TYPE TNSIDList IS TABLE OF PLS_INTEGER INDEX BY VARCHAR2(255);
-- Контекст пространства имён тега
TYPE TNSContext IS RECORD(
  iDefaultNSID PLS_INTEGER, -- ID атрибута пространства имён по умолчанию
  IDList       TNSIDList);  -- список ID атрибутов пространств имён
 
-- Поддерживаемые кодирования двоичных данных
SBinaryEncoding_Base64 CONSTANT VARCHAR2(255) := 'base64';
 
-- Данные тега для обратного превращения разобрнных XML-данных в XML
TYPE TTag IS RECORD (

Описание

Записывает содержимое временной таблицы с разобранными XML-данными в XML-файл.
Параметры:

  • sFileDir - имя каталога на сервере, в котором будет сохранён файл;
  • sFileName - имя сохраняемого файла;
  • iRootTagID - ID корневого тега; если null, должен существовать единственный корневой тег;
  • sEncoding - наименование кодировки выходного файла; на данный момент поддерживаются только два значения: UTF-8 и WINDOWS-1251; если null, используется кодировка UTF-8;
  • iAddHeader - добавлять ли в начале файла псевдотег <?xml version=...?> (0/1);
  • iNSAware - учитывать ли префиксы пространства имён (0/1);
  • sIndent - символ (символы) отступа для оформления иерархии тегов; если null, то отступы не добавляются;
  • sNewLine - символ (символы) перевода строки; если null, то файл создаётся без перевода строк.

Если файл с таким именем уже существует, он пересоздаётся.