how XML Schema allows us to re-use names, and give them different content models. : Salami Slice « XML Schema « XML Tutorial






<?xml version = "1.0" ?>
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema"
           targetNamespace = "http://www.java2s.com/books"
           xmlns:book = "http://www.java2s.com/books"
           elementFormDefault = "qualified">
   
   <xs:element name = "Book">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="TitleInformation" type = "book:TitleInformationType" />
            <xs:element name="Chapter" type = "book:ChapterType" minOccurs = "1" maxOccurs = "unbounded" />
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   
   <xs:complexType name = "TitleInformationType">
      <xs:sequence>
         <xs:element name = "Title" type = "xs:string" />
         <xs:element name = "Author" type = "xs:string" />
         <xs:element name = "Publisher" type = "xs:string" />
      </xs:sequence>
   </xs:complexType>
   
   <xs:complexType name = "ChapterType">
      <xs:sequence>
         <xs:element name = "Title">
            <xs:complexType>
               <xs:simpleContent>
                  <xs:extension base = "xs:string">
                     <xs:attribute name = "indexMark" type = "xs:ID" use = "required" />
                  </xs:extension>
               </xs:simpleContent>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
      <xs:attribute name = "chapterNumber" type = "xs:integer" />
   </xs:complexType>
   
</xs:schema>








3.98.Salami Slice
3.98.1.Salami Slice design Define global element declarations that are later referenced.
3.98.2.An XML Schema Document Using Named Type Definitions
3.98.3.Schema reuse
3.98.4.how XML Schema allows us to re-use names, and give them different content models.
3.98.5.extend the complex type that we have defined, creating new types for Customer and Employee:
3.98.6.Re-use in Text-only Element Content Models