XML Tutorial/XML Schema/Reference

Материал из Web эксперт
Версия от 18:22, 25 мая 2010; (обсуждение)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Referencing Already Defined Elements

You can only reference element declarations within sequences, sets of choices, unordered groups, and named group definitions.
Each reference may contain distinct values for minOccurs and maxOccurs.
 
File: Data.xml
<?xml version="1.0"?>  
<library> 
  <book id="b0836217462" available="true"> 
    <isbn>1111111111</isbn> 
    <title lang="en">Java</title> 
    <author id="CMS"> 
      <name>name</name> 
      <born>1998-11-26</born> 
      <dead>2000-02-12</dead> 
    </author> 
    <character id="PP"> 
      <name>Swing</name> 
      <born>1996-08-22</born> 
      <qualification>Yes</qualification> 
    </character> 
    <character id="Web"> 
      <name>JSP</name> 
      <born>1997-10-04</born> 
      <qualification>No</qualification> 
    </character> 
  </book> 
</library> 
File: Schema.xsd  
<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
  <xs:element name="name" type="xs:string"/> 
  <xs:element name="qualification" type="xs:string"/> 
  <xs:element name="born" type="xs:date"/> 
  <xs:element name="dead" type="xs:date"/> 
  <xs:element name="isbn" type="xs:string"/> 
  <xs:attribute name="id" type="xs:ID"/> 
  <xs:attribute name="available" type="xs:boolean"/> 
  <xs:attribute name="lang" type="xs:language"/> 
  <xs:element name="title"> 
    <xs:complexType> 
      <xs:simpleContent> 
        <xs:extension base="xs:string"> 
          <xs:attribute ref="lang"/> 
        </xs:extension> 
      </xs:simpleContent> 
    </xs:complexType> 
  </xs:element> 
  <xs:element name="library"> 
    <xs:complexType> 
      <xs:sequence> 
        <xs:element ref="book" maxOccurs="unbounded"/> 
      </xs:sequence> 
    </xs:complexType> 
  </xs:element> 
  <xs:element name="author"> 
    <xs:complexType> 
      <xs:sequence> 
        <xs:element ref="name"/> 
        <xs:element ref="born"/> 
        <xs:element ref="dead" minOccurs="0"/> 
      </xs:sequence> 
      <xs:attribute ref="id"/> 
    </xs:complexType> 
  </xs:element> 
  <xs:element name="book"> 
    <xs:complexType> 
      <xs:sequence> 
        <xs:element ref="isbn"/> 
        <xs:element ref="title"/> 
        <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>  
        <xs:element ref="character" minOccurs="0" 
          maxOccurs="unbounded"/> 
      </xs:sequence> 
      <xs:attribute ref="id"/> 
      <xs:attribute ref="available"/> 
    </xs:complexType> 
  </xs:element> 
  <xs:element name="character"> 
    <xs:complexType> 
      <xs:sequence> 
        <xs:element ref="name"/> 
        <xs:element ref="born"/> 
        <xs:element ref="qualification"/> 
      </xs:sequence> 
      <xs:attribute ref="id"/> 
    </xs:complexType> 
  </xs:element> 
</xs:schema>