Андрей Смирнов
Время чтения: ~29 мин.
Просмотров: 1

Формат xml

Ограничения на пробельных символов

Чтобы указать, как пробельные символы должны быть обработаны, мы будем использовать пробельные ограничение.

Этот пример определяет элемент под названием «address» с ограничением. WHITESPACE ограничение устанавливается на «preserve» , что означает , что процессор XML не будет удалять любые символы пробелов:

<xs:element name=»address»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:whiteSpace value=»preserve»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

Этот пример также определяет элемент под названием «address» с ограничением. WHITESPACE ограничение устанавливается на «replace» , что означает , что процессор XML заменяет все пробельные символы ( перевода строки, табуляции, пробелы и возврата каретки) с пробелами:

<xs:element name=»address»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:whiteSpace value=»replace»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

Этот пример также определяет элемент под названием «address» с ограничением. WHITESPACE ограничение устанавливается на «collapse» , что означает , что процессор XML удалит все символы пробелов ( перевода строки, табуляции, пробелы, символы возврата каретки заменяются пробелами, начальные и конечные пробелы удаляются, а несколько пробелов сводится к единое пространство):

<xs:element name=»address»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:whiteSpace value=»collapse»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

XSD схема¶

XML Schema — язык описания структуры XML-документа, его также называют XSD. Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.

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

  • словарь (названия элементов и атрибутов);
  • модель содержания (отношения между элементами и атрибутами и их структура);
  • типы данных.

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

Подробнее об XSD смотрите:

  • XML Schema
  • XSD — умный XML

Примечание

Примером использования XSD cхем может служить электронная отчетность:

ФНС: Справочник налоговой и бухгалтерской отчетности

Create an XML Schema

Now we want to create a schema for the XML document above.

We start by opening a new file that we will call «shiporder.xsd». To create the schema we could simply follow
the structure in the XML document and define each element as we find it. We will start with the standard XML declaration followed by the xs:schema element that defines a schema:

<?xml version=»1.0″ encoding=»UTF-8″ ?>
<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»>…
</xs:schema>

In the schema above we use the standard namespace (xs), and the URI
associated with this namespace is the Schema language definition, which has the
standard value of http://www.w3.org/2001/XMLSchema.

Next, we have to define the «shiporder» element. This element has an
attribute and it contains other elements, therefore we consider it as a complex
type. The child elements of the «shiporder» element is surrounded by a
xs:sequence element that defines an ordered sequence of sub elements:

<xs:element name=»shiporder»>
 
<xs:complexType>
   
<xs:sequence>
     

   
</xs:sequence>
 
</xs:complexType>
</xs:element>

Then we have to define the «orderperson» element as a simple type (because it does
not contain any attributes or other elements). The type (xs:string) is prefixed
with the namespace prefix associated with XML Schema that indicates a predefined
schema data type:

<xs:element name=»orderperson» type=»xs:string»/>

Next, we have to define two elements that are of the complex type: «shipto» and
«item». We start by defining the «shipto» element:

<xs:element name=»shipto»>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name=»name» type=»xs:string»/>
     
<xs:element name=»address» type=»xs:string»/>
     
<xs:element name=»city» type=»xs:string»/>
     
<xs:element name=»country» type=»xs:string»/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

With schemas we can define the number of possible occurrences for an element
with the maxOccurs and minOccurs attributes. maxOccurs specifies the maximum
number of occurrences for an element and minOccurs specifies the minimum number
of occurrences for an element. The default value for both maxOccurs and
minOccurs is 1!

Now we can define the «item» element. This element can appear multiple times
inside a «shiporder» element. This is specified by setting the maxOccurs
attribute of the «item» element to «unbounded» which means that there can be as
many occurrences of the «item» element as the author wishes. Notice that the
«note» element is optional. We have specified this by setting the minOccurs
attribute to zero:

<xs:element name=»item» maxOccurs=»unbounded»>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name=»title» type=»xs:string»/>
     
<xs:element name=»note» type=»xs:string» minOccurs=»0″/>
     
<xs:element name=»quantity» type=»xs:positiveInteger»/>
     
<xs:element name=»price» type=»xs:decimal»/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

We can now declare the attribute of the «shiporder» element. Since
this is a required attribute we specify use=»required».

Note: The attribute declarations must always come last:

<xs:attribute name=»orderid» type=»xs:string» use=»required»/>

Here is the complete listing of the schema file called «shiporder.xsd»:

<?xml version=»1.0″ encoding=»UTF-8″ ?>
<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»>
<xs:element name=»shiporder»>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name=»orderperson» type=»xs:string»/>
     
<xs:element name=»shipto»>
       
<xs:complexType>
         
<xs:sequence>
           
<xs:element name=»name» type=»xs:string»/>
           
<xs:element name=»address» type=»xs:string»/>
           
<xs:element name=»city» type=»xs:string»/>
           
<xs:element name=»country» type=»xs:string»/>
         
</xs:sequence>
       
</xs:complexType>
     
</xs:element>
     
<xs:element name=»item» maxOccurs=»unbounded»>
       
<xs:complexType>
         
<xs:sequence>
           
<xs:element name=»title» type=»xs:string»/>
           
<xs:element name=»note» type=»xs:string» minOccurs=»0″/>
           
<xs:element name=»quantity» type=»xs:positiveInteger»/>
           
<xs:element name=»price» type=»xs:decimal»/>
         
</xs:sequence>
       
</xs:complexType>
     
</xs:element>
   
</xs:sequence>
   
<xs:attribute name=»orderid» type=»xs:string» use=»required»/>
 
</xs:complexType>
</xs:element>
</xs:schema>

Restrictions for Datatypes

ConstraintDescription
enumerationDefines a list of acceptable values
fractionDigitsSpecifies the maximum number of decimal places allowed.
Must be equal to or greater than zero
lengthSpecifies the exact number of characters or list items
allowed. Must be equal to or greater than zero
maxExclusiveSpecifies the upper bounds for numeric values (the value
must be less than this value)
maxInclusiveSpecifies the upper bounds for numeric values (the value
must be less than or equal to this value)
maxLengthSpecifies the maximum number of characters or list items
allowed. Must be equal to or greater than zero
minExclusiveSpecifies the lower bounds for numeric values (the value
must be greater than this value)
minInclusiveSpecifies the lower bounds for numeric values (the value
must be greater than or equal to this value)
minLengthSpecifies the minimum number of characters or list items
allowed. Must be equal to or greater than zero
patternDefines the exact sequence of characters that are
acceptable
totalDigitsSpecifies the exact number of digits allowed. Must be
greater than zero
whiteSpaceSpecifies how white space (line feeds, tabs, spaces, and
carriage returns) is handled

Типы файлов WVE

Ассоциация основного файла WVE

.WVE

Формат файла:.wve
Тип файла:Wondershare Filmora Project File

WVE это видео проект, разработанный Wondershare Filmora, который является программное обеспечение позволяет пользователям создавать свои собственные видео. Он поддерживает аудио и видео дорожек, текст, эффекты, переходы и звуковые эффекты. Трюмных проекты, сделанные Filmora сохраняется расширение in.WVE будет продолжено позже.

Создатель: Wondershare Software Co., Ltd.
Категория файла:Видео файлы
Ключ реестра:HKEY_CLASSES_ROOT\.wve

Программные обеспечения, открывающие Wondershare Filmora Project File:

Wondershare Filmora, разработчик — Wondershare Software Co., Ltd.

Совместимый с:

Windows
Mac

Ассоциации других файлов WVE

.WVE

Формат файла:.wve
Тип файла:WaveEditor Project File

WVE is a file extension associated with WaveEditor which is a software that enables users to edit audios. It contains some CyperLink multimedia software editing apps.It was available as a part of PowerDirector but now it’s separated. WVE is the extension that acts a storage for projects made by WaveEditor.

Создатель: CyberLink
Категория файла:Аудио файлы

Программы, открывающие файлы WaveEditor Project File :

CyberLink Media Suite, разработчик — CyberLink

Совместимый с:

Windows

Cyberlink AudioDirector, разработчик — CyberLink

Совместимый с:

Windows

.WVE

Формат файла:.wve
Тип файла:Psion 8-bit A-law Audio

WVE является расширением файла, связанным с карманными компьютерами, производимых компанией Psion. Он может хранить звуковые данные при низком пространстве (8-бит).

Создатель: Psion PLC
Категория файла:Аудио файлы

Программы, открывающие файлы Psion 8-bit A-law Audio :

SoX, разработчик — Open Source

Совместимый с:

Windows
Mac
Linux

.WVE

Формат файла:.wve
Тип файла:DivX Movie Conversion Component

WVE является расширение файла, связанного с DivX, который представляет собой программный видеокодек. DivX использует аудио, видео и другие файлы данных для преобразования записанного видео в формате DivX. Эти файлы сохраняются расширение in.WEV. DivX работает с Windows, MacOS и OS X.

Создатель: DivX, LLC.
Категория файла:Файлы данных

Программы, открывающие файлы DivX Movie Conversion Component :

DivX, разработчик — DivX, LLC.

Совместимый с:

Windows
Mac
iOS
Android

Как открыть xsd формат

Для открытия большинства файлов xsd будет достаточно использовать любые подручные текстовые редакторы (тот же «Блокнот», Notepad++, PSPad Editor и др.). Также в открытии xsd формата могут пригодиться такие программы как Microsoft XML Notepad, Oxygen XML Editor, Liquid XML Studio и другие аналоги.

Если же данный файл являет собой результат работы программы Pattern Maker for Cross stitch (обычно это рисунок-схема для вышивки), то такой файл можно просмотреть или с помощью указанной программы, или с помощью специального просмотрщика под названием «Pattern Maker Viewer».

Вышивка формата .XSD

How to Define a Complex Element

Look at this complex XML element, «employee», which contains only other elements:

<employee>
 
<firstname>John</firstname>
 
<lastname>Smith</lastname>
</employee>

We can define a complex element in an XML Schema two different ways:

1. The «employee» element can be declared directly by naming the element, like this:

<xs:element name=»employee»>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name=»firstname» type=»xs:string»/>
     
<xs:element name=»lastname» type=»xs:string»/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

If you use the method described above, only the «employee» element can use the
specified complex type. Note that the child elements, «firstname» and «lastname», are surrounded
by the <sequence> indicator. This means that the child elements must appear in
the same order as they are declared. You will learn more about indicators in the XSD Indicators chapter.

2. The «employee» element can have a type attribute that refers to the name of the complex type to use:

<xs:element name=»employee» type=»personinfo»/>
<xs:complexType name=»personinfo»>
 
<xs:sequence>
   
<xs:element name=»firstname» type=»xs:string»/>
   
<xs:element name=»lastname» type=»xs:string»/>
 
</xs:sequence>
</xs:complexType>

If you use the method described above, several elements can refer to the same complex type, like this:

<xs:element name=»employee» type=»personinfo»/>
<xs:element name=»student» type=»personinfo»/>
<xs:element name=»member» type=»personinfo»/>
<xs:complexType name=»personinfo»>
 
<xs:sequence>
   
<xs:element name=»firstname» type=»xs:string»/>
   
<xs:element name=»lastname» type=»xs:string»/>
 
</xs:sequence>
</xs:complexType>

You can also base a complex element on an existing complex element and add some elements, like this:

<xs:element name=»employee» type=»fullpersoninfo»/>
<xs:complexType name=»personinfo»>
 
<xs:sequence>
   
<xs:element name=»firstname» type=»xs:string»/>
   
<xs:element name=»lastname» type=»xs:string»/>
 
</xs:sequence>
</xs:complexType>
<xs:complexType name=»fullpersoninfo»>
 
<xs:complexContent>
   
<xs:extension base=»personinfo»>
     
<xs:sequence>
       
<xs:element name=»address» type=»xs:string»/>
       
<xs:element name=»city» type=»xs:string»/>
       
<xs:element name=»country» type=»xs:string»/>
     
</xs:sequence>
   
</xs:extension>
 
</xs:complexContent>
</xs:complexType>

Restrictions on Length

To limit the length of a value in an element, we would use the length, maxLength, and minLength constraints.

This example defines an element called «password» with a restriction. The value must be exactly eight characters:

<xs:element name=»password»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:length value=»8″/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

This example defines another element called «password» with a
restriction. The value must be minimum five characters and maximum eight
characters:

<xs:element name=»password»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:minLength value=»5″/>
     
<xs:maxLength value=»8″/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

Что такое XML-схемы?

XML-схема описывает структуру документа XML.

Язык XML — схемы также упоминается как XML Schema Definition (XSD) .

XSD Пример

<?xml version=»1.0″?>
<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»>
<xs:element name=»note»>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name=»to» type=»xs:string»/>
     
<xs:element name=»from» type=»xs:string»/>
     
<xs:element name=»heading» type=»xs:string»/>
     
<xs:element name=»body» type=»xs:string»/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>
</xs:schema>

Цель XML-схемы является определение правовых строительных блоков документа XML:

  • элементы и атрибуты, которые могут появиться в документе
  • количество (and order of) дочерних элементов
  • типы данных для элементов и атрибутов
  • по умолчанию и фиксированные значения для элементов и атрибутов

Restrictions on a Set of Values

To limit the content of an XML element to a set of acceptable values, we would use the enumeration constraint.

The example below defines an element called «car» with a restriction. The only acceptable values are: Audi, Golf, BMW:

<xs:element name=»car»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:enumeration value=»Audi»/>
     
<xs:enumeration value=»Golf»/>
     
<xs:enumeration value=»BMW»/>
   
</xs:restriction>
 
</xs:simpleType>
</xs:element>

The example above could also have been written like this:

<xs:element name=»car» type=»carType»/>
<xs:simpleType name=»carType»>
 
<xs:restriction base=»xs:string»>
   
<xs:enumeration value=»Audi»/>
   
<xs:enumeration value=»Golf»/>
   
<xs:enumeration value=»BMW»/>
 
</xs:restriction>
</xs:simpleType>

Note: In this case the type «carType» can be used by other elements because it is not a part of the «car» element.

Файл не соответствует xsd схеме — что это?

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

Скриншот ошибки Документ не соответствует xsd схеме

Часто такая ситуация происходит в случае подачи бухгалтерской и иной формы отчётности, когда специалист контролирующего органа, при попытке открытия xml-файла, обнаруживает упомянутую ошибку.

Что делать в данной ситуации? Рекомендую выполнить следующее:

  1. Проверьте корректность данных в файле xml, делая акцент на наличие синтаксических ошибок (лишние дефисы, пробелы и так далее);
  2. Обновите программу, в которой вы работали с xml-файлом (возможно её текущая версия устарела);
  3. Обратитесь в техническую поддержку, занимающуюся обслуживанием данного программного продукта (или в техподдержку контролирующего органа).

Устранение неполадок при открытии файлов OPJ

Общие проблемы с открытием файлов OPJ

OrCAD PCB Designer не установлен

Дважды щелкнув по файлу OPJ вы можете увидеть системное диалоговое окно, в котором сообщается «Не удается открыть этот тип файла». В этом случае обычно это связано с тем, что на вашем компьютере не установлено OrCAD PCB Designer для %%os%%. Так как ваша операционная система не знает, что делать с этим файлом, вы не сможете открыть его дважды щелкнув на него.

Совет: Если вам извстна другая программа, которая может открыть файл OPJ, вы можете попробовать открыть данный файл, выбрав это приложение из списка возможных программ.

Установлена неправильная версия OrCAD PCB Designer

В некоторых случаях у вас может быть более новая (или более старая) версия файла OrCAD Project File, не поддерживаемая установленной версией приложения. При отсутствии правильной версии ПО OrCAD PCB Designer (или любой из других программ, перечисленных выше), может потребоваться загрузить другую версию ПО или одного из других прикладных программных средств, перечисленных выше. Такая проблема чаще всего возникает при работе в более старой версии прикладного программного средства с файлом, созданным в более новой версии, который старая версия не может распознать.

Совет: Иногда вы можете получить общее представление о версии файла OPJ, щелкнув правой кнопкой мыши на файл, а затем выбрав «Свойства» (Windows) или «Получить информацию» (Mac OSX).

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

Даже если на вашем компьютере уже установлено OrCAD PCB Designer или другое программное обеспечение, связанное с OPJ, вы все равно можете столкнуться с проблемами во время открытия файлов OrCAD Project File. Если проблемы открытия файлов OPJ до сих пор не устранены, возможно, причина кроется в других проблемах, не позволяющих открыть эти файлы. Такие проблемы включают (представлены в порядке от наиболее до наименее распространенных):

An XML Document

Let’s have a look at this XML document called «shiporder.xml»:

<?xml version=»1.0″ encoding=»UTF-8″?>
<shiporder orderid=»889923″
xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»
xsi:noNamespaceSchemaLocation=»shiporder.xsd»>
 
<orderperson>John Smith</orderperson>
 
<shipto>
   
<name>Ola Nordmann</name>
   
<address>Langgt 23</address>
   
<city>4000 Stavanger</city>
   
<country>Norway</country>
 
</shipto>
 
<item>
   
<title>Empire Burlesque</title>
   
<note>Special Edition</note>
   
<quantity>1</quantity>
   
<price>10.90</price>
 
</item>
 
<item>
   
<title>Hide your heart</title>
   
<quantity>1</quantity>
   
<price>9.90</price>
 
</item>
</shiporder>

The XML document above consists of a root element, «shiporder»,
that contains a required attribute called «orderid». The «shiporder» element contains three
different child elements: «orderperson», «shipto» and «item». The «item» element
appears twice, and it contains a «title», an optional «note» element, a «quantity», and a «price»
element.

The line above: xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» tells the XML parser that this document should be validated against a schema.
The line: xsi:noNamespaceSchemaLocation=»shiporder.xsd» specifies WHERE the schema resides (here it is in the same folder as «shiporder.xml»).

Using Named Types

The third design method defines classes or types, that enables us to reuse element
definitions. This is done by naming the simpleTypes and complexTypes elements,
and then point to them through the type attribute of the element.

Here is the third design of the schema file («shiporder.xsd»):

<?xml version=»1.0″ encoding=»UTF-8″ ?>
<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»>
<xs:simpleType name=»stringtype»>
 
<xs:restriction base=»xs:string»/>
</xs:simpleType>
<xs:simpleType name=»inttype»>
 
<xs:restriction base=»xs:positiveInteger»/>
</xs:simpleType>
<xs:simpleType name=»dectype»>
 
<xs:restriction base=»xs:decimal»/>
</xs:simpleType>
<xs:simpleType name=»orderidtype»>
 
<xs:restriction base=»xs:string»>
   
<xs:pattern value=»{6}»/>
 
</xs:restriction>
</xs:simpleType>
<xs:complexType name=»shiptotype»>
 
<xs:sequence>
   
<xs:element name=»name» type=»stringtype»/>
   
<xs:element name=»address» type=»stringtype»/>
   
<xs:element name=»city» type=»stringtype»/>
   
<xs:element name=»country» type=»stringtype»/>
 
</xs:sequence>
</xs:complexType>
<xs:complexType name=»itemtype»>
 
<xs:sequence>
   
<xs:element name=»title» type=»stringtype»/>
   
<xs:element name=»note» type=»stringtype» minOccurs=»0″/>
   
<xs:element name=»quantity» type=»inttype»/>
   
<xs:element name=»price» type=»dectype»/>
 
</xs:sequence>
</xs:complexType>
<xs:complexType name=»shipordertype»>
 
<xs:sequence>
   
<xs:element name=»orderperson» type=»stringtype»/>
   
<xs:element name=»shipto» type=»shiptotype»/>
   
<xs:element name=»item» maxOccurs=»unbounded» type=»itemtype»/>
 
</xs:sequence>
 
<xs:attribute name=»orderid» type=»orderidtype» use=»required»/>
</xs:complexType>
<xs:element name=»shiporder» type=»shipordertype»/>
</xs:schema>

The restriction element indicates that the datatype is derived from a W3C XML
Schema namespace datatype. So, the following fragment means that the value of
the element or attribute must be a string value:

<xs:restriction base=»xs:string»>

The restriction element is more often used to apply restrictions to elements.
Look at the following lines from the schema above:

<xs:simpleType name=»orderidtype»>
 
<xs:restriction base=»xs:string»>
   
<xs:pattern value=»{6}»/>
 
</xs:restriction>
</xs:simpleType>

This indicates that the value of the element or attribute must be a string, it must be exactly six characters in a row, and those characters must be a
number from 0 to 9.

Поиск информации в XML файлах (XPath)¶

XPath ( англ. XML Path Language) — язык запросов к элементам
XML-документа. XPath расширяет возможности работы с XML.

XML имеет древовидную структуру. В документе всегда имеется корневой
элемент (инструкция к дереву отношения не имеет).
У элемента дерева всегда существуют потомки и предки, кроме корневого
элемента, у которого предков нет, а также тупиковых элементов (листьев
дерева), у которых нет потомков. Каждый элемент дерева находится на
определенном уровне вложенности (далее — «уровень»). У элементов на
одном уровне бывают предыдущие и следующие элементы.

Это очень похоже на организацию каталогов в файловой системе, и строки
XPath, фактически, — пути к «файлам» — элементам. Рассмотрим пример
списка книг:

<?xml version="1.0" encoding="windows-1251"?>
<bookstore>
   <book category="COOKING">
     <title lang="it">Everyday Italian</title>
     <author>Giada De Laurentiis</author>
     <year>2005</year>
     <price>30.00</price>
   </book>
   <book category="CHILDREN">
     <title lang="en">Harry Potter</title>
     <author>J K. Rowling</author>
     <year>2005</year>
     <price>29.99</price>
   </book>
   <book category="WEB">
     <title lang="en">Learning XML</title>
     <author>Erik T. Ray</author>
     <year>2003</year>
     <price>39.95</price>
   </book>
</bookstore>

XPath запрос вернет следующий результат:

<price>30.00</price>
<price>29.99</price>
<price>39.95</price>

Сокращенная форма этого запроса выглядит так: .

С помощью XPath запросов можно искать информацию по атрибутам. Например,
можно найти информацию о книге на итальянском языке: вернет .

Чтобы получить больше информации, необходимо модифицировать запрос вернет:

<book category="COOKING">
     <title lang="it">Everyday Italian</title>
     <author>Giada De Laurentiis</author>
     <year>2005</year>
     <price>30.00</price>
   </book>

В приведенной ниже таблице представлены некоторые выражения XPath и
результат их работы:

Ограничения для Datatypes

скованность Описание
enumeration Определяет список допустимых значений
fractionDigits Задает максимальное количество знаков после запятой допускается. Должно быть равно или больше нуля
length Определяет точное число символов или элементов списка разрешенных. Должно быть равно или больше нуля
maxExclusive Определяет верхние границы для числовых значений (значение должно быть меньше этого значения)
maxInclusive Определяет верхние границы для числовых значений (значение должно быть меньше или равно этому значению)
maxLength Задает максимальное число символов или элементов списка разрешенных. Должно быть равно или больше нуля
minExclusive Задает нижние границы для числовых значений (значение должно быть больше, чем это значение)
minInclusive Задает нижние границы для числовых значений (значение должно быть больше или равно этому значению)
minLength Задает минимальное количество символов или элементов списка разрешенных. Должно быть равно или больше нуля
pattern Определяет точную последовательность символов, которые являются приемлемыми
totalDigits Определяет точное число цифр, разрешенных. Должно быть больше нуля
whiteSpace Определяет, как белое пространство (каналы линии, вкладки, пробелы и возврат каретки) обрабатывается

❮ Предыдущая Следующая Глава ❯

What is an XML Schema?

An XML Schema describes the structure of an XML document.

The XML Schema language is also referred to as XML Schema Definition (XSD).

XSD Example

<?xml version=»1.0″?>
<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»>
<xs:element name=»note»>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name=»to» type=»xs:string»/>
     
<xs:element name=»from» type=»xs:string»/>
     
<xs:element name=»heading» type=»xs:string»/>
     
<xs:element name=»body» type=»xs:string»/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>
</xs:schema>

The purpose of an XML Schema is to define the legal building blocks of an XML
document:

  • the elements and attributes that can appear in a document
  • the number of (and order of) child elements
  • data types for elements and attributes
  • default and fixed values for elements and attributes

Other Restrictions on a Series of Values

The example below defines an element called «letter» with a
restriction. The acceptable value is zero or more occurrences of lowercase letters from a to z:

<xs:element name=»letter»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:pattern value=»()*»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

The next example also defines an element called «letter» with a
restriction. The acceptable value is one or more pairs of letters, each pair
consisting of a lower case letter followed by an upper case letter. For example,
«sToP» will be validated by this pattern, but not «Stop» or «STOP» or «stop»:

<xs:element name=»letter»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:pattern value=»()+»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

The next example defines an element called «gender» with a restriction. The only acceptable value is male OR female:

<xs:element name=»gender»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:pattern value=»male|female»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

The next example defines an element called «password» with a
restriction. There must be exactly eight characters in a row and those
characters must be lowercase or uppercase letters from a to z, or a number from 0 to 9:

<xs:element name=»password»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:pattern value=»{8}»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

Ограничения на ряд значений

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

В приведенном ниже примере определяет элемент под названием «letter» с ограничением. Единственным допустимым значением является одним из строчных букв от А до Я:

<xs:element name=»letter»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:pattern value=»»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

Следующий пример определяет элемент под названием «initials» с ограничением. Единственное приемлемое значение три из заглавных букв, от А до Я:

<xs:element name=»initials»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:pattern value=»»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

Следующий пример также определяет элемент под названием «initials» с ограничением. Единственным допустимым значением является три из строчных букв или заглавными буквами от А до Я:

<xs:element name=»initials»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:pattern value=»»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

Следующий пример определяет элемент , называемый «choice» с ограничением. Единственным допустимым значением является одним из следующих букв: х, у, г ИЛИ:

<xs:element name=»choice»> 
<xs:simpleType>
   
<xs:restriction base=»xs:string»>
     
<xs:pattern value=»»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

Следующий пример определяет элемент под названием «prodid» с ограничением. Единственным допустимым значением является пять цифр в последовательности, и каждая цифра должна быть в диапазоне от 0 до 9:

<xs:element name=»prodid»> 
<xs:simpleType>
   
<xs:restriction base=»xs:integer»>
     
<xs:pattern value=»»/>
   
</xs:restriction>
 
</xs:simpleType></xs:element>

XML-схемы используют синтаксис XML

Еще одна большая сила о XML-схемы является то, что они написаны на XML.

  • Вам не придется выучить новый язык
  • Вы можете использовать редактор XML для редактирования файлов схемы
  • Вы можете использовать XML-анализатор для анализа ваших файлов схемы
  • Вы можете манипулировать вашей схеме с XML DOM
  • Вы можете преобразовать вашу схему с помощью XSLT

XML-схемы являются расширяемым, потому что они написаны на XML.

С помощью расширяемого определения схемы вы можете:

  • Повторное использование вашей схемы в других схемах
  • Создавать свои собственные типы данных, полученных от стандартных типов
  • Ссылка несколько схем в том же документе
Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации