Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Редактор XML позволяет создавать XML-фрагменты на основе схемы на языке XSD. Например, во время работы с XML-файлом, если курсор находится сразу после имени элемента, можно нажать клавишу TAB, чтобы заполнить элемент XML-данными, созданными на основе информации схемы для этого элемента.
Эта возможность доступна только для элементов. При этом действуют следующие правила.
Элемент должен иметь схему связанного с ним типа, то есть элемент должен быть правильным согласно какой-либо связанной схеме. Тип схемы не может быть абстрактным и должен содержать необходимые атрибуты или необходимые дочерние элементы.
Текущий элемент в редакторе должен быть пустым, не имеющим атрибутов. Например, все приведенные ниже элементы являются правильными.
<Account
<Account>
<Account></Account>
Курсор должен находиться непосредственно справа от имени элемента.
Созданный фрагмент содержит все необходимые атрибуты и элементы. Если значение minOccurs
больше единицы, во фрагмент включается необходимое минимальное количество экземпляров этого элемента. Максимум составляет 100 экземпляров. Любые фиксированные значения, обнаруженные в схеме, становятся фиксированными значениями во фрагменте. Элементы xsd:any
и xsd:anyAttribute
не учитываются и не увеличивают конструкцию фрагмента.
Значения по умолчанию создаются и помечаются как редактируемые значения. Если в схеме указано значение по умолчанию, используется это значение. Но если в схеме значением по умолчанию является пустая строка, редактор создает значения по умолчанию следующим образом.
Если тип схемы содержит аспекты перечисления, заданные прямо или косвенно с помощью любого из членов типа объединения, то по умолчанию используется первое перечисляемое значение, найденное в модели объектов схемы.
Если тип схемы является атомарным, редактор получает атомарный тип и вставляет имя атомарного типа. Для производного простого типа используется базовый простой тип. Для типа списка в качестве типа
itemType
используется атомарный тип. Атомарным типом для объединения является атомарный тип первого типаmemberType
.
Пример
В этом разделе показано, как использовать в редакторе XML возможность создания XML-фрагментов из схемы.
Примечание.
Прежде чем приступать к этим процедурам, сохраните файл схемы на локальном компьютере.
Создание XML-файла и связывание его со схемой XML
В меню Файл выберите пункт Создать, затем — Файл.
Выберите в области Шаблоны пункт XML-файл и нажмите кнопку Открыть.
Новый файл открывается в редакторе. Этот файл содержит XML-декларацию по умолчанию:
<?xml version="1.0" encoding="utf-8">
.В окне свойств документа нажмите кнопку обзора (...) в поле Схемы.
Отобразится диалоговое окно XSD-схемы.
Нажмите кнопку Добавить.
Отображается диалоговое окно Открытие XSD-схемы.
Выберите файл схемы и нажмите кнопку Открыть.
Щелкните OK.
Теперь с XML-документом связана схема XML.
Создание XML-фрагмента
Наберите
<
на панели редактора.Список членов отображает следующие возможные элементы:
!-- для добавления комментария.
!DOCTYPE для добавления типа документа.
? для добавления инструкции по обработке.
Contact для добавления корневого элемента.
Выберите в списке пункт Contact и нажмите клавишу ВВОД.
Редактор добавляет открывающий тег,
<Contact
, и помещает курсор после имени элемента.Нажмите клавишу TAB, чтобы создать XML-данные для элемента
Contact
на основании информации схемы.
Входные данные
В этом пошаговом руководстве используется следующий файл схемы.
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="phoneType">
<xs:restriction base="xs:string">
<xs:enumeration value="Voice"/>
<xs:enumeration value="Fax"/>
<xs:enumeration value="Pager"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="Contact">
<xs:complexType>
<xs:sequence>
<xs:element name="Name">
<xs:simpleType>
<xs:restriction base="xs:string"></xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Title"
type="xs:string" />
<xs:element name="Phone"
minOccurs="1"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Number"
minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string"></xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Type"
default="Voice"
minOccurs="1"
type="phoneType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Выходные данные
Далее приведены XML-данные, созданные на основе информации схемы, которая связана с элементом Contact
. Элементы, помеченные как bold
, обозначают редактируемые поля в XML-фрагменте.
<Contact>
<Name>name</Name>
<Title>title</Title>
<Phone>
<Number>number</Number>
<Type>Voice</Type>
</Phone>
</Contact>