XML Tutorial/XML Schema/elementFormDefault

Материал из Web эксперт
Перейти к: навигация, поиск

Allowing Any Elements or Attributes from a Particular Namespace

   <source lang="xml">

File: Data.xml <?xml version="1.0"?> <library xmlns="http://wbex.ru/ns/library"

 xmlns:mkt="http://wbex.ru/ns/library/mkt">
 <book id="b0836217462">
   <title>title</title>
   <authors>
     <person id="CMS">
       <name>name</name>
     </person>
   </authors>
   <mkt:cover>Paperback</mkt:cover>
   <mkt:pages>128</mkt:pages>
 </book>

</library> File: Schema.xsd <?xml version="1.0"?> <xs:schema targetNamespace="http://wbex.ru/ns/library"

 elementFormDefault="qualified"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns="http://wbex.ru/ns/library">
 <xs:element name="library">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="book" />
     </xs:sequence>
     <xs:anyAttribute
       namespace="http://wbex.ru/ns/library/mkt"
       processContents="skip" />
   </xs:complexType>
 </xs:element>
 <xs:element name="book">
   <xs:complexType>
     <xs:sequence>
       <xs:element name="title" type="xs:string" />
       <xs:element name="authors">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="person">
               <xs:complexType>
                 <xs:sequence>
                   <xs:element name="name"
                     type="xs:string" />
                 </xs:sequence>
                 <xs:attribute name="id"
                   type="xs:string" use="required" />
               </xs:complexType>
             </xs:element>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
       <xs:any namespace="http://wbex.ru/ns/library/mkt"
         processContents="skip" minOccurs="0" maxOccurs="unbounded" />
     </xs:sequence>
     <xs:attribute name="id" use="required">
       <xs:simpleType>
         <xs:restriction base="xs:string" />
       </xs:simpleType>
     </xs:attribute>
   </xs:complexType>
 </xs:element>

</xs:schema></source>


Namespace Qualification

   <source lang="xml">

When working with namespaces, the schema author must decide whether the namespace of each element and attribute should be hidden or exposed in the document instance.

elementFormDefault="qualified | unqualified" attributeFormDefault="qualified | unqualified" By setting the elementFormDefault attribute, you can require the document instance to expose or hide namespace qualifications. If you use elementFormDefault="qualified", the namespace of each element would have to be exposed in document instances.</source>