XML-схема описывает структуру XML-документа. Язык схемы XML также называется определением схемы XML (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-документа.
В мире XML ежедневно используются сотни стандартизированных форматов XML. Многие из этих стандартов XML определяются схемой XML. XML-схема — это (более мощная) замена DTD на основе XML.
XML-схема поддерживает типы данных
Одним из самых больших преимуществ XML-схемы является поддержка типов данных.
Еще одна важная особенность XML-схем заключается в том, что они написаны на XML.
XML-схемы расширяемы, поскольку они написаны на XML. Используя определения расширяемой схемы, вы можете:
При отправке данных от отправителя получателю вы должны убедиться, что оба имеют одинаковое «ожидание» содержимого. Используя XML-схему, отправитель может описать данные так, чтобы их мог понять получатель.
Например, дату «11.03.2004» можно интерпретировать как 3 ноября в некоторых странах и 11 марта в других странах. Однако при таком типе данных XML элемент:
<date type="date">2004-03-11</date>
Взаимопонимание содержимого обеспечивается, поскольку тип данных XML «дата» требует формата «ГГГГ-ММ-ДД».
Просто иметь правильный формат недостаточно
Правильно сформированный XML-документ — это документ, который соответствует правилам синтаксиса XML, например:
Даже если документы правильно отформатированы, они все равно могут содержать ошибки, которые могут иметь серьезные последствия. Рассмотрим следующий сценарий: вместо 5 лазерных принтеров вы заказываете лазерные принтеры за 5 долларов. Используя XML-схему, большинство этих ошибок можно обнаружить с помощью программного обеспечения проверки.
Документы XML могут ссылаться на DTD или схему XML.
Простой XML-документ
учитыватьэтот Простой XML-документ,названный"note.xml":
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
В следующем примере показан файл с именем «note.dtd». DTD файл, который определяет вышеуказанное XML Документ("note.xml")изэлемент:
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
В следующем примере показан файл с именем «note.xsd». XML Schema файл, который определяет вышеуказанное XML Документ("note.xml") изэлемент:
<?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>
note элемент — сложный тип, поскольку он содержит другой элемент. Другой элемент (к, from, heading, body) да простые типы, потому что они не содержат других элементов.
Ссылка на DTD
Этот XML-документ ссылается на DTD:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<schema>
элемент<schema>
элементдакаждый XML Schema изкореньэлемент。
<schema>
элемент
<schema>
элементдакаждый XML Schema изкореньэлемент:
инструктировать экземпляр XML-документа существует. Любое объявление, объявленное в этой схеме, должно быть квалифицировано в пространстве имен.
Справочные схемы в документах XML
Этот XML-документ ссылается на XML-схему:
<?xml version="1.0"?>
<note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Указано объявление пространства имен по умолчанию. Это объявление сообщает валидатору схемы
Если у вас есть пространство имен экземпляра схемы XML:
ты можешь использовать schemaLocation
свойство. Это свойство имеет два значения, разделенных пробелами. Первое значение — это используемое пространство имен. Второе значение должно использоваться для пространства имен XML Расположение узора:
XML-схема определения элемента в XML-файле.
Простой элемент XML, содержащий только текстовый элемент. Оно не может содержать никакой другой элементилисвойства.
Простой элемент XML, содержащий только текстовый элемент. Оно не может содержать никакой другой элементилисвойства.
Однако ограничение «только текст» вводит в заблуждение. Текст может относиться к одному из множества различных типов. Это может быть один из типов, включенных в определение схемы XML (логическое значение, строка, дата и т. д.), или это может быть пользовательский тип, который вы определяете самостоятельно.
Вы также можете добавить фасеты к типу данных, чтобы ограничить его содержимое, или потребовать, чтобы данные соответствовали определенному шаблону.
Определение грамматики просто элемент
<xs:element name="xxx" type="yyy"/>
в xxx Имя даэлемента,гг Тип данных даэлемента.
XML-схемы имеют множество встроенных типов данных. К наиболее распространенным типам относятся:
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
Пример
Вот некоторые XML элемент
<lastname>Refsnes</lastname>
<age>36</age>
<dateborn>1970-03-27</dateborn>
Следующее простое определение да соответствует:
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>
Простое значение элемента по умолчанию и фиксированное значение
Простой элемент может иметь указанное значение по умолчанию и фиксированное значение.
Значение по умолчанию автоматически присваивается элементу, если не указано другое значение.
существуют В следующем примере значением по умолчанию является «красный»:
<xs:element name="color" type="xs:string" default="red"/>
Элементу также автоматически присваиваются фиксированные значения, и вы не можете указать другие значения.
существуют В следующем примере фиксированное значение — «красное»:
<xs:element name="color" type="xs:string" fixed="red"/>
Все свойства объявлены как простые типы.
Простой элемент не может иметь свойство. если элемент, имеющий свойство, считается сложным типом. Но само дасвойство всегда декларируется как простой тип.
Синтаксис определения атрибутов:
<xs:attribute name="xxx" type="yyy"/>
в xxx
дасвойствоизимя,yyy
Указывает тип данных атрибута.
XML-схемы имеют множество встроенных типов данных. К наиболее распространенным типам относятся:
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
Пример, Ниже приведены свойства XML элемент
<lastname lang="EN">Smith</lastname>
Ниже приведено соответствующее определение атрибута.
<xs:attribute name="lang" type="xs:string"/>
Значения по умолчанию и фиксированные значения для свойств
Свойства могут иметь заданные значения по умолчанию или фиксированные значения.
Значения по умолчанию автоматически присваиваются свойствам, если не указаны другие значения.
существуют В следующем примере значением по умолчанию является «EN»:
<xs:attribute name="lang" type="xs:string" default="EN"/>
Свойствам также автоматически присваиваются фиксированные значения, и вы не можете указать другие значения.
существуют. В следующем примере фиксированным значением является «EN»:
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
Необязательные и обязательные атрибуты
Свойства по умолчанию являются необязательными. Чтобы указать, что свойство является обязательным, используйте атрибут «use»:
<xs:attribute name="lang" type="xs:string" use="required"/>
Ограничения на контент
Когда XML-элементилисвойство имеет определенный тип данных, это накладывает ограничения на содержимое верногоэлементилисвойства.
если XML Тип элемента «xs:date» и включите что-то вроде "Hello World" строка, элемент не будет проверен.
использовать XML режим, вы также можете добавить XML Элементисвоство Добавить пользовательские ограничения. Эти ограничения называются грани. Подробнее об этом вы можете узнать в следующей главе. facets информация.
Ограничения/ограничения XSD
Ограничения используются для определения XML Приемлемые значения элементилисвойства. верно XML Предел элемента называется facets。
Ограничения на значения
Следующий пример определяет файл с именем "age" элемент и налагаемые ограничения. возраст Значение не может быть меньше 0 или больше, чем 120:
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="120"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
XML Содержимое элемента ограничено набором допустимых значений, мы будем использовать ограничение перечисления.
Следующий пример определяет файл с именем "car" элемент и налагаемые ограничения. Единственное приемлемое значение — да: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>
Приведенный выше пример также можно записать следующим образом:
<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>
ПРИМЕЧАНИЕ. В этом случае введите "carType" Можно заменить другим элементомиспользовать, потому что это не да "car" часть элемента.
к Содержимое элемента XML ограничено определенной серией цифр или букв, мы будем использовать ограничение шаблона.
Следующий пример определяет файл с именем "letter" элемент и налагаемые ограничения. Единственное допустимое значение — строчная буква да. a приезжать z Любой из:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Следующий пример определяет файл с именем "initials" элемент и налагаемые ограничения. Единственные допустимые значения — строчные или прописные буквы. a приезжать z Три из них:
<xs:element name="initials">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][A-Z][A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Следующий пример также определяет функцию под названием "initials" элемент и налагаемые ограничения. Единственные допустимые значения — строчные или прописные буквы. a приезжать z Три из них:
<xs:element name="initials">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Следующий пример определяет файл с именем "choice" элемент и налагаемые ограничения. Единственным приемлемым значением является одна из следующих букв: x, y. или z:
<xs:element name="choice">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[xyz]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Следующий пример определяет файл с именем "prodid" элемент и налагаемые ограничения. Единственное допустимое значение — последовательное пятизначное число, каждое число должно существовать. 0 приезжать 9 В пределах:
<xs:element name="prodid">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Следующий пример определяет файл с именем "letter" элемент и налагаемые ограничения. Допустимые значения да строчные буквы a приезжать z Ноль или несколько экземпляров:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z])*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Следующий пример также определяет функцию под названием "letter" элемент и налагаемые ограничения. Допустимые значения — да или и несколько букв «верно», каждая из которых состоит из строчной буквы, за которой следует прописная буква. Например, «СТо П» пройдет проверку этого режима, но "Stop"、"STOP" или "stop" Не будет:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z][A-Z])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Следующий пример определяет файл с именем "gender" элемент и налагаемые ограничения. Единственное приемлемое значение — да male или female:
<xs:element name="gender">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="male|female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Следующий пример определяет файл с именем "password" элемент и налагаемые ограничения. существования должны храниться последовательно восемь символов, эти символы должны быть строчными или прописными буквами. a приезжать z один из или номер 0 приезжать 9:
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Чтобы указать, как обрабатывать пробельные символы, мы будем использовать ограничение whiteSpace.
Следующий пример определяет файл с именем "address" элемент и налагаемые ограничения. белый Космос Ограничения установлены на «сохранить», что означает XML Процессор не удаляет пробельные символы:
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
этот Пример также определяет класс под названием "address" элемент и налагаемые ограничения. белый Космос Ограничения установлены на «заменить», что означает XML Процессор заменит все пробельные символы (новую строку, табуляцию, пробелы и возврат каретки) на пробелы:
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
этот Пример также определяет класс под названием "address" элемент и налагаемые ограничения. белый Космос Ограничения установлены на «обвал», что означает XML Процессор удалит все пробельные символы (новая строка, табуляция, пробелы и возврат каретки заменяются пробелами, начальные и конечные пробелы удаляются, а несколько пробелов сокращаются до одного):
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Чтобы ограничить длину значения в элементе, мы будем использовать ограничение length, maxLength и minLength.
Следующий пример определяет файл с именем "password" элемент и налагаемые ограничения. Значение должно состоять ровно из восьми символов:
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
этот Пример определяет другой именованный "password" изэлемент,и ввели ограничения. Значение должно быть не менее пяти символов.,До восьми символов:
<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>
Описание ограничения
перечисление определяет список допустимых значений
FractionDigits указывает максимальное разрешенное количество десятичных знаков. Должно быть больше или равно нулю
длина определяет точное количество разрешенных символов и количество элементов списка. Должно быть больше или равно нулю
maxExclusive указывает верхнюю границу значения (значение должно быть меньше этого значения)
maxInclusive указывает верхний предел значения (значение должно быть меньше или равно этому значению)
maxLength определяет максимальное разрешенное количество символов и количество элементов списка. Должно быть больше или равно нулю
minExclusive указывает нижнюю границу значения (значение должно быть больше этого значения)
minInclusive указывает нижний предел значения (значение должно быть больше или равно этому значению)
minLength определяет минимальное разрешенное количество символов и количество элементов списка. Должно быть больше или равно нулю
шаблон определяет точную последовательность символов, которая является приемлемой
totalDigits указывает точное количество разрешенных цифр. должно быть больше нуля
whiteSpace определяет, как обрабатывать символы пробелов (переводы строк、символ табуляции、Пробел→Ввод)
Для того, чтобы облегчить друзьям на других устройствах и платформах просмотр предыдущих статей:
Поиск общедоступной учетной записи WeChat:Let us Coding
,сосредоточиться Вы можете получить последнюю статью после
Я нашел это полезным после прочтения, если,Лайки приветствуются、собирать、сосредоточиться на