что такое xsi type

Как определить xsi: введите как атрибут в XML-схему?

У меня есть XML, для которого я хочу написать определение схемы. Проблема в том, что я не знаю, как определить xsi: type как атрибут. Вот элемент XML:

Мое определение XML-схемы до сих пор выглядит следующим образом:

Я также попытался определить его, как предложил Ян Робертс:

Однако, когда я использую конструктор BPEL для его инициализации следующим образом:

Я получаю следующее предупреждение:

Введенное вами фиксированное значение не представляется корректным XML (что необходимо для правильной работы некоторых типов фиксированных значений). Он будет сохранен в текстовом формате.

Если я инициализирую его так, то нет предупреждения:

Но проблема в том, что веб-служба, которую я пытаюсь вызвать, ожидает, что запрос SOAP-сообщения будет включать атрибут xsi: type = “xs: double”. Как я могу отправить сообщение с запросом SOAP?

Любая помощь будет принята с благодарностью!

Вам не нужно – просто объявить элемент без какого-либо типа.

Атрибут xsi:type используется для указания правилу проверки схемы, что реальный тип конкретного экземпляра элемента не является объявленным типом элемента, а скорее является подтипом, полученным из объявленного типа. Объявив элемент без типа, вы говорите, что он может иметь любой тип, и вы будете использовать xsi:type в экземпляре, чтобы указать, какой из них.

Строго вы объявляете элемент, тип которого является “ur-type”, который является корнем иерархии типов XML-схемы, – все типы, простые и сложные, в конечном итоге происходят из ur-типа. Если вы хотите ограничить элемент SerializedData только простым контентом (без подэлементов или атрибутов), объявите его как

Что касается второй части вашего вопроса, ваш дизайнерский инструмент прав, что в изоляции

неверно XML, поскольку пространство имен xsi не объявлено. Попробуйте добавить объявления пространства имен:

Атрибут xsi: type не должен быть объявлен в схеме: он неявно объявлен и может использоваться для любого элемента. Но в экземпляре он должен быть допустимым QName.

(a), чтобы быть правильно сформированным пространством имен, вам нужно объявить пространство имен “xsi”

(b), чтобы быть действительным для схемы, вам также нужно объявить пространство имен “xs”.

Как указал Робертс, это означает, что вы должны написать

Источник

XML-файлы форматирования (SQL Server)

Можно использовать XML-файл форматирования с командой bcp, инструкциями BULK INSERT или INSERT. Инструкция SELECT * FROM OPENROWSET(BULK. ). Команда bcp позволяет автоматически создать XML-файл форматирования для таблицы. Дополнительные сведения см. в разделе bcp Utility.

В этом разделе:

Преимущества использования XML-файлов форматирования

XML-файлы форматирования описывают сами себя, благодаря чему упрощается их чтение, создание и расширение. Они доступны для чтения человеком, что позволяет легко понять, как интерпретируются данные во время массовых операций.

XML-файлы форматирования содержат типы данных целевых столбцов. Запись XML четко описывает типы данных и элементы файла данных, а также соответствие элементов данных столбцам таблицы.

Это позволяет отделить представление данных в файле от типов данных полей. Например, если файл данных содержит данные в символьном представлении, то тип данных SQL соответствующего столбца будет утрачен.

XML-файл форматирования позволяет загружать из файлов данных поля, содержащие единственный тип данных LOB.

XML-файл форматирования можно улучшить, сохранив совместимость с предыдущими версиями. Кроме того, понятность записи XML облегчает создание нескольких файлов форматирования для некоторого файла данных. Это удобно при сопоставлении всех или некоторых полей данных со столбцами в различных таблицах и представлениях.

Синтаксис XML-файла форматирования не зависит от направления операции; для операций массового импорта и массового экспорта синтаксис одинаков.

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

Для функции OPENROWSET(BULK. ) указание целевой таблицы является необязательным. Это обусловлено тем, что эта функция для чтения данных из файла данных использует XML-файл форматирования.

Целевая таблица необходима при работе с командой bcp и инструкцией BULK INSERT, которая использует столбцы целевой таблицы при преобразовании типов.

Структура XML-файлов форматирования

XML-файлы форматирования, как и файл форматирования в формате, отличном от XML, определяют формат и структуру полей данных в файле данных и сопоставляют их со столбцами целевой таблицы.

описывает способ хранения данных в файле данных.

Каждый элемент содержит набор из одного элемента или нескольких. Эти элементы соответствуют полям в файле данных. Базовый синтаксис:

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

Поле в файле данных может иметь фиксированную или переменную длину или завершаться определенным символом. Значение поля может быть представлено в следующем виде: символ (однобайтовое представление), широкий символ (двухбайтовое представление Юникода), собственный формат базы данных или имя файла. Если значение поля представляется в виде имени файла, оно указывает на файл, который содержит значение столбца BLOB в целевой таблице.

описывает, как создавать строки данных из файла данных, который импортируется в таблицу сервера SQL Server.

Каждый элемент можно сопоставить только с одним полем в файле данных. Порядок элементов в элементе задает порядок, в котором они будут возвращены массовой операцией. XML-файл форматирования назначает каждому элементу локальное имя, не имеющее отношения к столбцу целевой таблицы операции массового импорта.

Синтаксис схемы для XML-файлов форматирования

Этот раздел содержит список элементов и атрибутов схемы XML для XML-файлов форматирования. Синтаксис файла форматирования не зависит от направления операции; для операций массового импорта и массового экспорта синтаксис одинаков. В разделе также рассматривается использование элементов и массовым импортом и помещение значения xsi:type элемента в набор данных.

Чтобы узнать, как этот синтаксис соответствует реальным XML-файлам форматирования, см. далее раздел Образец XML-файлов форматирования.

Можно изменить файл форматирования, чтобы обеспечить возможность массового импорта данных из файла данных, в котором количество или порядок полей отличаются от количества или порядка столбцов таблицы. Дополнительные сведения см в разделе Файлы форматирования для импорта или экспорта данных (SQL Server).

В этом разделе.

Основной синтаксис схемы XML

В этом разделе.

Элементы схемы

В этом разделе кратко описаны назначения каждого элемента, определяемого схемой XML для XML-файла форматирования. Атрибуты описаны в отдельных подразделах ниже в этом разделе.

Элемент файла форматирования, который определяет структуру записей данного файла данных и его соответствие столбцам строки таблицы.

Определяет составной элемент, содержащий один элемент или несколько. Порядок, в котором поля объявлены в файле форматирования, является порядком, в котором эти поля будут расположены в файле данных.

Определяет поле в файле данных, которое содержит данные.

Атрибуты этого элемента описаны в разделе Атрибуты элемента ниже в данной статье.

Дополнительные сведения см. в разделе Как массовый импорт использует элемент ниже в данной статье.

Определяет столбец как элемент ( ). Каждый элемент соответствует элементу (чей идентификатор задан в атрибуте SOURCE элемента ).

Атрибуты этого элемента описаны в разделе Атрибуты элемента ниже в данной статье. См. также раздел Как массовый импорт использует элемент ниже в данной статье.

Требуется в конце файла форматирования.

Атрибуты элемента

Значения xsi:type элемента

Каждый элемент независим от других. Поле описывается на основе следующих атрибутов:

Атрибут FIELDОписаниеНеобязательный или

Обязательно

ID fieldID «Задает логическое имя поля в файле данных. Идентификатор поля является ключом, используемым для обращения к полю.

соответствует

Обязательно
xsi:type fieldType «Это конструкция XML (используется как атрибут), которая указывает тип экземпляра элемента. Значение атрибута fieldType определяет, какой из необязательных атрибутов (см. ниже) необходим в данном экземпляре.Обязательный (в зависимости от типа данных)
LENGTH n «Этот атрибут определяет длину для экземпляра типа данных фиксированной длины.

Значение n должно быть положительным целым числом.

Необязательный, когда не требуется значением xsi:type
PREFIX_LENGTH p «Этот атрибут определяет длину префикса для двоичного представления данных. Значение PREFIX_LENGTH, p, должно быть равно 1, 2, 4 или 8.Необязательный, когда не требуется значением xsi:type
MAX_LENGTH m «Этот атрибут является максимальным числом байтов, которые могут храниться в данном поле. Без целевой таблицы максимальная длина столбца неизвестна. Атрибут MAX_LENGTH ограничивает максимальную длину выходного столбца символов, ограничивая хранилище, выделенное для значения столбца. Это особенно удобно при использовании параметра BULK функции OPENROWSET в предложении SELECT FROM.

По умолчанию признаком конца поля является символ табуляции (представленный как «\t»). Чтобы указать знак абзаца, используйте сочетание символов «\r\n».

Используется только со значением xsi:type символьных данных, которые требуют наличия этого атрибута
Значения Xsi:type элемента

Значение xsi:type — это конструкция XML, используемая как атрибут и определяющая тип данных экземпляра элемента. Сведения по применению этой конструкции см. в пункте «Размещение значения xsi:type в наборе данных» ниже в этом разделе.

Значение xsi:type элемента поддерживает следующие типы данных.

Значения xsi:typeОбязательные XML-атрибуты

для типа данных

Необязательные XML-атрибуты

для типа данных

NativeFixedLENGTHНет.
NativePrefixPREFIX_LENGTHMAX_LENGTH
CharFixedLENGTHCOLLATION
NCharFixedLENGTHCOLLATION
CharPrefixPREFIX_LENGTHMAX_LENGTH, COLLATION
NCharPrefixPREFIX_LENGTHMAX_LENGTH, COLLATION
CharTermTERMINATORMAX_LENGTH, COLLATION
NCharTermTERMINATORMAX_LENGTH, COLLATION

Дополнительные сведения о типах данных Microsoft SQL Server см. в разделе Типы данных (Transact-SQL).

Атрибуты элемента

Поле сопоставлено со столбцом целевой таблицы с использованием следующих атрибутов:

Атрибут COLUMNОписаниеНеобязательный или

Обязательно

SOURCE fieldID «Задает идентификатор поля, сопоставляемого со столбцом.

соответствует

Обязательно
NAME = «columnName«Задает имя столбца в наборе строк, представленном файлом форматирования. Это имя столбца используется для идентификации столбца в результирующем наборе, и оно не обязательно должно соответствовать имени столбца целевой таблицы.Обязательно
xsi : type ColumnType «Это конструкция XML (используется как атрибут), которая указывает тип данных экземпляра элемента. Значение атрибута ColumnType определяет, какой из необязательных атрибутов (см. ниже) необходим в данном экземпляре.

Значение n должно быть положительным целым числом.

Необязательный (доступен только в том случае, если значение xsi:type является строковым типом данных)
PRECISION n «Указывает количество цифр в числе. Например, число 123,45 имеет точность 5.

Значение должно быть положительным целым числом.

Необязательный (доступен только в том случае, если значение xsi:type является переменным числовым типом данных)
SCALE int «Указывает количество цифр справа от десятичной запятой в числе. Например, число 123,45 имеет масштаб 2.

Значением должно быть целое число.

Необязательный (доступен только в том случае, если значение xsi:type является переменным числовым типом данных)
NULLABLE = < « YES «

« NO « >

Указывает, может ли столбец принимать значение NULL. Этот атрибут полностью независим от FIELDS. Однако если столбец не NULLABLE и в поле указано значение NULL (значение не указано), результатом будет ошибка выполнения.

Атрибут NULLABLE используется только при выполнении простых инструкций SELECT FROM OPENROWSET(BULK. ).

Необязательный (доступен для любого типа данных)
Значения Xsi:type элемента

Значение xsi:type — это конструкция XML, используемая как атрибут и определяющая тип данных экземпляра элемента. Сведения по применению этой конструкции см. в пункте «Размещение значения xsi:type в наборе данных» ниже в этом разделе.

Элемент поддерживает следующие собственные типы данных SQL.

Категория типаТипы данныхОбязательные XML-атрибуты

для типа данных

Необязательные XML-атрибуты

для типа данных

исправлениеSQLBIT, SQLTINYINT, SQLSMALLINT, SQLINT, SQLBIGINT, SQLFLT4, SQLFLT8, SQLDATETIME, SQLDATETIM4, SQLDATETIM8, SQLMONEY, SQLMONEY4, SQLVARIANT и SQLUNIQUEIDНет.NULLABLE
Переменное числоSQLDECIMAL и SQLNUMERICНет.NULLABLE, PRECISION, SCALE
Большой объект (LOB)SQLIMAGE, CharLOB, SQLTEXT и SQLUDTНет.NULLABLE
Большой символьный объект (CLOB)SQLNTEXTНет.NULLABLE
Двоичная строкаSQLBINARY и SQLVARYBINНет.NULLABLE, LENGTH
Строка символовSQLCHAR, SQLVARYCHAR, SQLNCHAR и SQLNVARCHARНет.NULLABLE, LENGTH

Для массового экспорта или импорта данных SQLXML используется один из следующих типов данных в файле форматирования. SQLCHAR или SQLVARYCHAR (данные посылаются в кодовой странице клиента или в кодовой странице, предполагаемой параметрами сортировки), SQLNCHAR или SQLNVARCHAR (данные посылаются в формате Юникод) и SQLBINARY или SQLVARYBIN (данные посылаются без преобразования).

Дополнительные сведения о типах значений SQL Server см. в разделе Типы данных (Transact-SQL).

Как массовый импорт использует элемент

Элемент не учитывается в некоторых контекстах. Влияние элемента на операцию массового импорта зависит от того, как выполняется операция.

команда bcp

Transact-SQL инструкции (команда BULK INSERT и поставщик массового набора строк OPENROWSET)

При мас=совом импорте данных в таблицу инструкции Transact-SQL используют компонент для формирования входного набора строк. Инструкции Transact-SQL также выполняют соответствующие преобразования типов, основываясь на типах столбцов, указанных для элемента и соответствующего столбца в целевой таблице. При несовпадении типов столбцов в файле форматирования и в целевой таблице производится дополнительное преобразование типов, Это дополнительное преобразование типа может привести к некоторым различиям (т. е. к потере точности) в работе команды BULK INSERT или поставщика массового набора строк OPENROWSET по сравнению с командой bcp.

Сведения в элементе позволяют построить строку без дополнительных сведений. По этой причине набор строк можно сформировать при помощи инструкции SELECT (SELECT * FROM OPENROWSET(BULK datafile FORMATFILE=xmlformatfile).

Чтобы использовать предложение OPENROWSET BULK, необходим файл форматирования (обратите внимание, что преобразование типа данных поля в тип данных столбца доступно только при наличии XML-файла форматирования).

Как массовый импорт использует элемент

Для массового импорта данных в таблицу элементы в файле форматирования сопоставляют поле файла данных со столбцами таблицы, указывая:

позицию каждого поля в строке файла данных;

тип столбца, используемый для преобразования типа данных поля в необходимый тип данных столбца.

Если с полем не сопоставлено ни одного столбца, поле не копируется в сформированные строки. Такое поведение позволяет файлам данных формировать строки с различными столбцами (в разных таблицах).

Аналогично для массового экспорта данных из таблицы каждый элемент в файле форматирования сопоставляет столбец строки входной таблицы с соответствующим полем выходного файла данных.

Помещение значения xsi:type в набор данных

Образцы XML-файлов форматирования

В файлах данных, приведенных в следующих примерах, обозначает символ табуляции в файле данных, а означает символ возврата каретки.

Эти примеры иллюстрируют ключевые аспекты применения XML-файлов форматирования.

Сведения о создании файлов форматирования см. в разделе Создание файла форматирования (SQL Server).

A. упорядочивание полей с символьными данными по столбцам таблицы;

В следующем примере представлен XML-файл форматирования, описывающий файл данных, в котором содержатся три поля символьных данных. Файл форматирования сопоставляет файл данных с таблицей, содержащей три столбца. Поля данных соответствуют «один к одному» столбцам таблицы.

Таблица (строка): Person (Age int, FirstName varchar(20), LastName varchar(30))

Файл данных (запись): Age FirstName LastName

Следующий XML-файл форматирования считывает данные из файла данных в таблицу.

В элементе файл форматирования представляет значения во всех трех полях в символьном виде. Для каждого поля атрибут TERMINATOR указывает признак конца поля, следующий за значением.

Поля данных соответствуют «один к одному» столбцам таблицы. В элементе файла форматирования столбец Age сопоставляется с первым полем, столбец FirstName — со вторым, а столбец LastName — с третьим.

Эквивалентный пример AdventureWorks2012 см. в разделе Создание файла форматирования (SQL Server).

Б. упорядочивание полей данных в порядке, отличающемся от порядка столбцов таблицы;

В следующем примере представлен XML-файл форматирования, описывающий файл данных, в котором содержатся три поля символьных данных. Файл форматирования сопоставляет файл данных с таблицей, содержащей три столбца, порядок следования которых отличается от порядка следования полей файла данных.

Таблица (строка): Person (Age int, FirstName varchar(20), LastName varchar(30))

Файл данных (запись): Age Lastname Firstname

В элементе файл форматирования представляет значения во всех трех полях в символьном виде.

В элементе файла форматирования столбец Age сопоставляется с первым полем, столбец FirstName — с третьим, а столбец LastName — со вторым.

В. пропуск поля данных;

В следующем примере представлен XML-файл форматирования, описывающий файл данных, в котором содержатся четыре поля символьных данных. Файл форматирования сопоставляет файл данных с таблицей, содержащей три столбца. Второе поле данных не связывается ни с одним столбцом таблицы.

Таблица (строка): Person (Age int, FirstName Varchar(20), LastName Varchar(30))

Файл данных (запись): Age employeeID Firstname Lastname

В элементе файла форматирования значения данных представлены во всех четырех полях как символьные данные. Для каждого поля атрибут TERMINATOR указывает признак конца, следующий за значением данных.

В элементе файла форматирования столбец Age сопоставляется с первым полем, столбец FirstName — с третьим, а столбец LastName — с четвертым.

Г. Сопоставление xsi: Type и xsi: Type

Следующий пример демонстрирует различные типы полей и их сопоставление со столбцами.

Д. сопоставление XML-данных с таблицей;

Е. импорт полей фиксированной длины и полей фиксированной ширины.

Дополнительные примеры

Дополнительные примеры как для файлов форматирования в формате, отличном от XML, так и для XML-файлов форматирования см. в следующих разделах.

Источник

Xmlns xsi что это

В этой главе будет показано, как писать XML схемы. Также вы узнаете, что схемы можно писать разными способами.

XML документ

Давайте посмотрим на следующий XML документ под названием «shiporder.xml»:

Приведенный выше XML документ состоит из корневого элемента shiporder с обязательным атрибутом orderid. Элемент shiporder содержит три дочерних элемента: orderperson, shipto и item. Элемент item используется дважды и содержит элемент title, необязательный элемент note, а также элементы quantity и price.

Строка xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» говорит XML парсеру, что этот документ должен быть проверен на соответствие схеме. Строка xsi:noNamespaceSchemaLocation=»shiporder.xsd» указывает, где именно находится схема (в данном случае она находится в той же папке, что и файл «shiporder.xml»).

Создание XML схемы

Теперь для приведенного выше XML документа создадим XML схему.

Создадим новый файл, который назовем «shiporder.xsd». Для создания XML схемы будем просто следовать за структурой XML документа и определять каждый встреченный элемент. Начнем со стандартной XML декларации, за которой опишем элемент xs:schema, который и определяет саму схему:

Здесь мы используем стандартное пространство имен (xs) и URI, ассоциированный с этим пространством имен, который имеет стандартное значение http://www.w3.org/2001/XMLSchema.

Теперь мы должны определить элемент shiporder. У этого элемента есть атрибут, и он содержит другие элементы, поэтому мы рассматриваем его как элемент составного типа. Определения дочерних элементов элемента shiporder поместим в декларацию xs:sequence, что задает жесткую последовательность подэлементов:

Теперь определим элемент orderperson, который будет простого типа (так как он не содержит ни атрибуты, ни другие элементы). Его тип (xs:string) имеет префикс пространства имен, ассоциированного с XML схемой, что указывает на использование предопределенного типа данных:

Теперь нам нужно определить два элемента составного типа: shipto и item. Начнем с определения элемента shipto:

При помощи схем мы можем определить число возможных вхождений любого элемента. В этом нам помогут атрибуты maxOccurs и minOccurs. Атрибут maxOccurs задает максимальное число вхождений элемента, а атрибут minOccurs задает минимальное число вхождений. По умолчанию значение обоих атрибутов равно 1.

Теперь определим элемент item. Этот элемент может использоваться неограниченное число раз внутри элемента shiporder. Определить такую особенность элемента item позволяет присваивание атрибуту maxOccurs значения «unbounded». Это означает, что элемент item может использоваться столько раз, сколько нужно автору документа. Обратите внимание, что элемент note опционален. Определим это установив атрибут minOccurs в нулевое значение:

Теперь мы можем декларировать атрибут элемента shiporder. Поскольку это обязательный атрибут, используем определение use=»required».

Примечание: Атрибуты должны всегда декларироваться последними:

Вот полный код файла схемы «shiporder.xsd»:

Разделение схемы

Предыдущий способ компоновки схемы весьма прост, однако, когда документ достаточно сложен, при подобном способе соответствующая схема может оказаться довольно громоздкой, что сильно скажется на удобстве ее чтения и поддержки.

Следующий способ компоновки схемы заключается в том, что сначала определяются все элементы и атрибуты, а затем на эти определения создаются ссылки при помощи атрибута ref.

Ниже приводится новая компоновка файла схемы («shiporder.xsd»):

Использование поименованых типов

Третий способ компоновки схемы предполагает определение классов или типов, которые позволяют повторное использование определений элементов. Это становится возможным, если дать имена элементам simpleTypes и complexTypes, а затем указать на них при помощи атрибута type.

Третий способ компоновки файла схемы («shiporder.xsd»):

Элемент restriction указывает на то, что тип данных является производным от типов данных из пространства имен W3C XML Schema. Таким образом, следующий фрагмент кода означает, что значение элемента или атрибута должно быть строковым:

Однако гораздо чаще элемент restriction используется для накладывания ограничений на элементы. Посмотрите на следующие строки из приведенной выше схемы:

Этот фрагмент кода указывает, что значение элемента или атрибута должно быть строковым, ровно шесть символов в длину, и этими символами должны быть цифры от 0 до 9.

Для следующего фрагмента XML:

И есть 2 URL-адреса в xsi:schemaLocation=

Если 1 не существует, зачем его все еще класть?

Связанные с пространством имен атрибуты в XML и XML-схеме (XSD)

Префикс xmlns используется только для объявления привязок пространства имен и по определению связано с именем пространства имен http://www.w3.org/2000/xmlns/.

В вашем примере он объявляет, что http://maven.apache.org/POM/4.0.0 является пространством имен по умолчанию для элементов вашего проекта Maven.

xmlns:xsi объявляет стандартный префикс пространства имен ( xsi ) для используемого основного пространства имен в XSD: http://www.w3.org/2001/XMLSchema-instance

Схема XML: Структуры также определяют несколько атрибутов для прямого использования в любых XML-документах. Эти атрибуты находятся в другом пространстве имен, который имеет имя пространства имен http://www.w3.org/2001/XMLSchema-instance. Для краткости текст и примеры в этой спецификации используют префикс xsi: для этого последнее пространство имен; на практике может использоваться любой префикс.

xsi:type позволяет экземпляру XML напрямую связывать информацию типа элемента, а не через XSD, См. Как ограничить значение элемента XML с помощью xsi: type в XSD?

xsi:nil позволяет считать пустой элемент действительным, если XSD не может в противном случае разрешили его.

targetNamespace является атрибутом корня xs:schema элемент XSD, который определяет пространство имен корневого элемента экземпляров XML-документа, которые XSD предназначен для управления. Это должно соответствие по умолчанию или явное пространство имен этих корней XML-документов элементы.

Консорциум W3C выработал рекомендацию языка определения схем XML (XSD), объединив наиболее популярные языки описания схем в один стандарт. Основная цель, которая при этом преследовалась, — получение стандарта, который можно широко реализовать и при этом он платформно-независимый.

Язык XML Schema Definition Language, который также называют XML Schema Language, во многом похож на язык XDR, с которым вы познакомились раньше. Схемы XSD способны решать следующие задачи:

XML-документ, который проверяется с помощью схемы, также должен содержать объявление пространства имен. Пространство имен всегда указывается в корневом элементе экземпляра документа с помощью атрибута

Ссылка на конкретную схему приводится в атрибуте

Объявление элемента и атрибута XSD

Основное объявление элемента состоит из имени и типа данных

В схемах XSD дескрипторы, используемые в документах XML, разделяются на две категории — сложные типы и простые типы. Элементы сложных типов могут содержать другие элементы, а также обладают определенными атрибутами; элементы простых типов такими возможностями не обладают.

Атрибут – объявление простого типа, которое не может содержать другие элементы. Объявление атрибута похоже на объявление элемента:

Простые типы данных

Есть две главных категории простых типов:

Язык XSD имеет большое количество данных. Встроенные типы включают в себя примитивные типы и производные. данных не получены из других типов данных. Например, числа с плавающей запятой – математическое понятие, которое не получено из других типов данных. данных определены в терминах существующих типов данных. Например, целое число – частный случай, полученный из десятичного типа данных.

Следующая таблица представляет список примитивных типов данных XML-схемы, аспекты, которые могут быть применены к типу данных и описания типа данных.

Примитивные типы данных

Следующая таблица представляет список производных типов данных XML-схемы, аспекты, которые могут быть применены к типу данных и описания типа данных.

Производные типы данных

Определённые пользователем простые типы

Получены из встроенных типов, применением к ним именованых ограничений, называемыми аспектами(Facets). Аспекты ограничивают допустимые значения простых типов. Синтаксис применения аспектов ограничения следующий:

Аспекты ограничения простых типов

АспектЗначение
Определенный набор значений. Ограничивает тип данных указанными значениями.
Значение с определенным максимальным числом десятичных цифр в дробной части.
Целочисленное число единиц длины. Единицы длины зависят от типа данных.
Верхний предел значений (все значения – меньше указанного).
Максимальное значение.
Целочисленное число единиц максимальной длины.
Нижний предел значений (все значения – больше указанного).
Минимальное значение.
Целочисленное число единиц минимальной длины.
Литеральный шаблон, которому должны соответствовать значения.
Значение с определенным максимальным числом десятичных цифр.
Одно из предопределенных значений: preserve, replace или collapse
Значения аспекта

ЗначениеОписание
Никакая нормализация не выполняется.
Все #x9 (tab), #xA (line feed) and #xD (carriage return) заменяются на #x20 (пробел).
После replace-обработки все внутренние цепочки #x20 разрушаются до одного пробела, а окружающие пробелы удаляются.

Аспекты могут быть указаны только однажды в определении типа, кроме и – они могут иметь многократные вхождения и группируются.

Именованный тип данных

далее в контексте определения элемента сложного типа мы делаем ограничение на применение атрибутов этой группы:

Сложные типы данных

элемента сложного типа – формальное описание структуры и допустимого содержания элемента, которое используется для проверки правильности XML документа. Модели содержания Схемы предоставляют больший контроль структуры элементов, чем модели содержания DTD. Кроме того, модели содержания схемы позволяют проверять правильность смешанного содержания.

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

Перечень объявлений дочерних элементов приводится в структуре группирующих XSD-элементов choice, sequence, и all.

Элемент позволяет только одному из элементов, содержащихся в группе присутствовать в составе элемента. Элемент требует появления элементов группы в точно установленной последовательности в составе элемента. элемент позволяет элементам в группе быть (или не быть) в любом порядке в составе элемента.

Определение элемента сложного типа

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *