Документация 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
Описание
Вызывает 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
Описание
Возвращает список значений тегов по их 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, то файл создаётся без перевода строк.
Если файл с таким именем уже существует, он пересоздаётся.