Встроенные функции Флэнга
Работа с xml-документами


Обзор функций
Integer addNS(String URL, String Prefix)
          Функция заводит новое пространство имен с URL и локальным префиксом Prefix
Integer getNSNumber(Srting Url)
          Определяет внутренний номер пространства имен с url Url.
String getNSUrl(Integer N)
          Находит строку URL пространства имен с внутренним номером N
String setNSPrefix(Integer N, String Prefix)
          задает текущий префикс для данного пространства имен с номером N
XML sToX(String XmlText)
          конвертирует XML-документ из строкового (текстового) представления в термальное (древовидное)
boolean isNS(String URL)
          проверяет, добавлено ли в систему пространство имен с url URL
String getXName(Term XmlElem)
          Возвращает имя тега xml-элемента, являющегося аргументом функции
Hash getXAttrs(Term XmlElem)
          Возвращает таблицу аттрибутов xml-элемента (2-ой аргумент структуры xmlElem/4)
List/Vector getXConts(Term XmlElem)
          Возвращает содержимое xml-элемента
Term getXNS(Term XmlElem)
          Возвращает структуру xmlNS(...), содержащую информацию о пространстве имен данного элемента.
String getXText(XMLterm/List/Vector Arg)
          собирает текстовые узлы своего аргумента - XML-документа, вектора, списка, - объединяя текстовые сегменты в единую строку.
String getXText(Term XMLdoc, String XPATH)
          Ищет вершину XML-документа XMLdoc, удовлетворяющую условиям XPath. Если такая вершина найдена, у нее берется текстовая составляющая (конкатенация строковых подвершин), которая и является результатом работы функции. Если вершины, удовлетворяющей условиям, нет, то возвращается пустая строка "".
String getXNormText(Term/String XML)
          Собирает текстовые вершины документа в единую строку, представляя текст в нормализованном виде: пробельные символы (с кодом, меньшим или равным коду пробела - #0020) в начале и конце строки удаляются, внутри строки последовательности пробельных символов заменяются одним пробелом. Если аргумент является строкой, то функция нормализует ее.
Enumeration eXML(Term XML)
          Порождает перечисление, обходящее узлы XML-терма всех типов (элементы, инструкции обработки, cdata, комментарии, текст, сущности). Узлы пространств имен в перечисление не включаются.
Enumeration eXElem(Term XML)
          Порождает перечисление, перебирающее элементы XML-терма (структуры типа xmlElem(...))
Enumeration eXElem(Term XML, String XPath)
          Порождает перечисление, перебирающее вершины XML-терма (первый аргумент), удовлетворяющие условиям, описанным в XPath-выражении (второй аргумент)
Term getXElem(Term XML, String XPath)
          Ищет в XML-терме вершину, удовлетворяющую условию, представленному в формате XPATH (второй аргумент). Возвращает первую найденную вершину, удовлетворяющую условиям. Если вершина не найдена, возвращается null.
Boolean checkXElem(Term Xterm, String Xpath)
          проверяет, удовлетворяет ли Xterm условию Xpath (представленному в формате спецификации XPATH). Cчитается, что условие выполнено, если множество элементов Xterm, удовлетворяющих XPath непустое, то есть getXElem(Xterm, Xpath) != null.
Atom/Float/Integer/String getXAttr(Term XElem, String Xattr)
          Функция возвращает значение аттрибута элемента XElem с именем Xattr. Если аттрибут отсутствует, то возвращается атом null.
Term xDoc(List/Vector Contents)
          конструктор, порождающий xml-документ в термальном виде
Term xElem(String Name, Hash Attrib, List/Vector Contents, Integer Namespace)
          Конструирует структуру для xml-элемента с именем Name, атрибутами Attrib, содержимым Contents и пространством имен Namespace
Term xComments(String Comments)
          Конструктор, организующий узел комментариев в xml-документе
Term xEntityRef(String EntityRef)
          Порождает структуру, моделирующую вершину CDATA xml-документа
Term xCDATA(String CDATA)
          Порождает вершину xml-документа типа CDATA
Term xPI(String Target, Hash MapData, String RawData)
          Генерирует вершину, моделирующую узел xml-документа типа иструкция обработки (Processing Instruction)
Term xNS(Integer Num, Hash Additional)
          

Описание функций

addNS/2

Integer addNS(String URL, String Prefix)
    
Функция заводит новое пространство имен с URL и локальным префиксом Prefix Если данное пространство имен уже имеется, то возвращается его номер, при этом для этого пространства задается новый префикс

Аргументы:
URL - url добавляемого пространства имен
Prefix - текущий префикс для данного пространства имен
Подробнее...

getNSNumber/1

Integer getNSNumber(Srting Url)
    
Определяет внутренний номер пространства имен с url Url. Если пространство имен не определено, то возвращается -1

Аргументы:
Url - url пространства имен, для которого ищется номер.
Подробнее...

getNSUrl/1

String getNSUrl(Integer N)
    
Находит строку URL пространства имен с внутренним номером N если пространство имен с данным именем отсутствует, то возвращается null

Аргументы:
N - номер, по которому находится URL пространства имен
Подробнее...

setNSPrefix/2

String setNSPrefix(Integer N, String Prefix)
    
задает текущий префикс для данного пространства имен с номером N префикс должен соответствовать правилам построения имен в xml

Аргументы:
N - номер пространства имен, у которого устанавливается префикс
Prefix - устанавлеваемый префикс для пространства имен с данным номером
Подробнее...

sToX/1

XML sToX(String XmlText)
    
конвертирует XML-документ из строкового (текстового) представления в термальное (древовидное) Действует аналогично readXML/1

Аргументы:
XmlText - xml-документ в формате строки
Подробнее...

isNS/1

boolean isNS(String URL)
    
проверяет, добавлено ли в систему пространство имен с url URL

Аргументы:
URL - строка URL пространства имен
Подробнее...

getXName/1

String getXName(Term XmlElem)
    
Возвращает имя тега xml-элемента, являющегося аргументом функции

Аргументы:
XmlElem - xml-элемент, у которого берется имя тега
Подробнее...

getXAttrs/1

Hash getXAttrs(Term XmlElem)
    
Возвращает таблицу аттрибутов xml-элемента (2-ой аргумент структуры xmlElem/4)

Аргументы:
XmlElem - xml-элемент, у которого берется таблица атрибутов
Подробнее...

getXConts/1

List/Vector getXConts(Term XmlElem)
    
Возвращает содержимое xml-элемента

Аргументы:
XmlElem - xml-элемент - структура с функтором xmlElem/4
Подробнее...

getXNS/1

Term getXNS(Term XmlElem)
    
Возвращает структуру xmlNS(...), содержащую информацию о пространстве имен данного элемента.

Аргументы:
XmlElem - xml-элемент - структура с функтором xmlElem/4
Подробнее...

getXText/1

String getXText(XMLterm/List/Vector Arg)
    
собирает текстовые узлы своего аргумента - XML-документа, вектора, списка, - объединяя текстовые сегменты в единую строку.

Аргументы:
Arg - xml-документ, список или вектор, у которого выбирается текстовая составляющая
Подробнее...

getXText/2

String getXText(Term XMLdoc, String XPATH)
    
Ищет вершину XML-документа XMLdoc, удовлетворяющую условиям XPath. Если такая вершина найдена, у нее берется текстовая составляющая (конкатенация строковых подвершин), которая и является результатом работы функции. Если вершины, удовлетворяющей условиям, нет, то возвращается пустая строка "".

Аргументы:
XMLdoc - xml-терм, в котором берется текст
XPATH - xpath-условие на элемент терма XML, у которого берется текст
Подробнее...

getXNormText/1

String getXNormText(Term/String XML)
    
Собирает текстовые вершины документа в единую строку, представляя текст в нормализованном виде: пробельные символы (с кодом, меньшим или равным коду пробела - #0020) в начале и конце строки удаляются, внутри строки последовательности пробельных символов заменяются одним пробелом. Если аргумент является строкой, то функция нормализует ее.

Аргументы:
XML - xml-документ, у которого выбирается текстовая составляющая
Подробнее...

eXML/1

Enumeration eXML(Term XML)
    
Порождает перечисление, обходящее узлы XML-терма всех типов (элементы, инструкции обработки, cdata, комментарии, текст, сущности). Узлы пространств имен в перечисление не включаются.

Аргументы:
XML - xml-документ, вершины которого перебираются
Подробнее...

eXElem/1

Enumeration eXElem(Term XML)
    
Порождает перечисление, перебирающее элементы XML-терма (структуры типа xmlElem(...))

Аргументы:
XML - xml-документ, элементы которого перебираются
Подробнее...

eXElem/2

Enumeration eXElem(Term XML, String XPath)
    
Порождает перечисление, перебирающее вершины XML-терма (первый аргумент), удовлетворяющие условиям, описанным в XPath-выражении (второй аргумент) Пример: eXElem(XML, "//latex[@displaynum='#'"]) - перечисление, перебирающее все элементы XML с именем latex, содержащие атрибут displaynum, равный "#"

Аргументы:
XML - xml-терм, элементы которого перебираются
XPath - условия в формате XPath, накладываемые на вершины.
Подробнее...

getXElem/2

Term getXElem(Term XML, String XPath)
    
Ищет в XML-терме вершину, удовлетворяющую условию, представленному в формате XPATH (второй аргумент). Возвращает первую найденную вершину, удовлетворяющую условиям. Если вершина не найдена, возвращается null.

Аргументы:
XML - xml-терм, в котором ищется вершина, удовлетворяющая условиям
XPath - условие на искомую вершину в формате XPATH
Подробнее...

checkXElem/2

Boolean checkXElem(Term Xterm, String Xpath)
    
проверяет, удовлетворяет ли Xterm условию Xpath (представленному в формате спецификации XPATH). Cчитается, что условие выполнено, если множество элементов Xterm, удовлетворяющих XPath непустое, то есть getXElem(Xterm, Xpath) != null.

Аргументы:
Xterm - проверяемый XML-терм
Xpath - условие проверки XML-терма
Подробнее...

getXAttr/2

Atom/Float/Integer/String getXAttr(Term XElem, String Xattr)
    
Функция возвращает значение аттрибута элемента XElem с именем Xattr. Если аттрибут отсутствует, то возвращается атом null.

Аргументы:
XElem - xml-элемент, у которого берется значение аттрибута
Xattr - имя аттрибута, значение которого берется
Подробнее...

xDoc/1

Term xDoc(List/Vector Contents)
    
конструктор, порождающий xml-документ в термальном виде

Аргументы:
Contents - содержимое xml-документа
Подробнее...

xElem/4

Term xElem(String Name, Hash Attrib, List/Vector Contents, Integer Namespace)
    
Конструирует структуру для xml-элемента с именем Name, атрибутами Attrib, содержимым Contents и пространством имен Namespace

Аргументы:
Name - имя (тег) xml-элемента
Attrib - hash-таблица атрибутов xml-элемента
Contents - содержимое xml-элемента
Namespace - номер пространства имен для данного xml-документа
Подробнее...

xComments/1

Term xComments(String Comments)
    
Конструктор, организующий узел комментариев в xml-документе

Аргументы:
Comments - комментарии в xml-документе
Подробнее...

xEntityRef/1

Term xEntityRef(String EntityRef)
    
Порождает структуру, моделирующую вершину CDATA xml-документа Ссылка на сущность &EntityRef; моделируется структурой xmlEntityRef("EntityRef")

Аргументы:
EntityRef - ссылка на сущность xml-документа
Подробнее...

xCDATA/1

Term xCDATA(String CDATA)
    
Порождает вершину xml-документа типа CDATA Запись <![CDATA[<greeting>Hello, world!</greeting>]]> в xml-документе моделируется структурой xmlCDATA("<greeting>Hello, world!</greeting>")

Аргументы:
CDATA - содержимое вершины CDATA xml-документа
Подробнее...

xPI/3

Term xPI(String Target, Hash MapData, String RawData)
    
Генерирует вершину, моделирующую узел xml-документа типа иструкция обработки (Processing Instruction) Узел PI вида <?intruction a="b" cc?> моделируется структурой xPI("instruction", newHash(["a"="b"], "cc")

Аргументы:
Target - цель - имя обработчика, для которого задана данная вершина xml-документа
MapData - параметры инструкции в формате пар имя/значение
RawData - параметры инструкции в формате произвольной строки
Подробнее...

xNS/2

Term xNS(Integer Num, Hash Additional)
    
Дополнительные пространства имен формируются в виде хэш-таблицы в виде пар Номер-пространства-имен = Префикс.

Аргументы:
Num - номер пространства имен для текущего элемента
Additional - пространства имен, определяемые в данном узле
Подробнее...