Преобразование узлов

Можно выполнить преобразование для узлов элементов и атрибутов из их исходного документа в целевой документ.

Прежде чем начать

Об этой задаче

Допустимы следующие комбинации преобразования:
  • атрибут в атрибут
  • атрибут в элемент
  • элемент в элемент
  • элемент в атрибут
  • несколько узлов в один узел
Следующие инструкции предназначены для проекции Ресурсы, но им можно применять во многих других проекциях.

Для создания преобразования выполните следующие действия:

Процедура

  1. Откройте файл преобразования в редакторе связей XML.
  2. Выберите один или несколько элементов или атрибутов в исходном документе. Для выбора нескольких элементов или атрибутов удерживайте клавишу Ctrl.
  3. Выберите элемент или атрибут в целевом документе.
  4. Щелкните правой кнопкой мыши на исходном или целевом документе и выберите Создать преобразование. Теперь узлы будут связаны между собой. Для того чтобы задать тип преобразования, щелкните на окне Тип преобразования, расположенном между узлами. Можно выбрать одну из следующих опций:
    Опция Описание
    Перемещение Этот тип позволяет скопировать данные из исходного объекта в целевой.
    Concat Этот тип позволяет создать конкатенацию строк для получения данных из двух или более элементов для связывания их в один результат.
    Внутреннее преобразование Этот тип позволяет преобразованию вызвать другие преобразования, причем другие преобразования не могут его вызвать. Он может быть использован только в текущем преобразовании. Если объекты ввода и вывода являются массивами, внутреннее преобразование неявным образом выполняется для всех объектов ввода.
    Подкарта Этот тип ссылается на другое преобразование. Он позволяет вызвать преобразование из того или иного файла преобразования. Данный тип наиболее целесообразно выбирать в случаях, предусматривающих многократное использование.
    Подстрока Этот тип позволяет получить необходимую информацию. Например, подстрока фамилия, имя с ограничителем "," и индексом подстроки 0 возвращает значение фамилия. Если изменить индекс подстроки на 1, то в выводе будет имя.
    Группа Этот тип позволяет взять массив или набор данных и сгруппировать их в набор набора. В основном это массив, содержащий массив. Группировка выполняется на уровне поля, то есть она выполняется выбором поля набора ввода, например: "отдел".
    Нормировать Этот тип позволяет нормировать строку ввода. Например, можно удалить лишние пробелы (символы пробела, табуляции или возврата).
    Другое Этот тип позволяет ввести пользовательский код или вызвать опорный код для использования в преобразовании. Можно расширить встроенные функции преобразования с помощью выражений XPath и шаблонов XSLT.

Пример

Для удаления преобразования щелкните правой кнопкой мыши на связи преобразования и выберите Удалить.

Преобразование в элементы с пустым содержимым

Преобразование в элемент XML, не содержащий информации (например: <Person/>), отличается от преобразования в элемент XML, содержащий символьные данные (например: <Person>Молли</Person>). В последнем случае преобразование означает, что в качестве символьных данных целевого элемента будут использоваться данные из целевого узла. Однако в предыдущем случае преобразование не отражается на создаваемом XSLT.

В DTD элемент, совсем не имеющий содержимого, указывается с помощью ключевого слова 'EMPTY' (например: <!ELEMENT Person EMPTY>). В схеме XML это не так очевидно. Один из компактных (с точки зрения синтаксиса) способов указания элемента с пустым содержимым в схеме XML - определить сложный тип без какого-либо простого или сложного содержимого (например: <xsd:element name="Person"> <xsd:complexType/></xsd:element>). Это интерпретируется как сокращенный вариант обозначения сложного содержимого, запрещающего anyType.

Дальнейшие действия


Комментарии