<?xml version="1.0" encoding="UTF-8"?>
<!-- ============================================================= -->
<!--                    HEADER                                     -->
<!-- ============================================================= -->
<!--  MODULE:    DITA XNAL Domain                             -->
<!--  VERSION:   1.1                                             -->
<!--  DATE:      November 2006                                     -->
<!--                                                               -->
<!-- ============================================================= -->

<!-- ============================================================= -->
<!-- SYSTEM:     Darwin Information Typing Architecture (DITA)     -->
<!--                                                               -->
<!-- PURPOSE:    Define elements and specialization attributes     -->
<!--             for XNAL Domain                              -->
<!--                                                               -->
<!-- ORIGINAL CREATION DATE:                                       -->
<!--             March 2001                                        -->
<!--                                                               -->
<!--             (C) Copyright OASIS-Open.org 2006                -->
<!--             All Rights Reserved.                              -->
<!-- ============================================================= -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    <!-- <!ENTITY xnal-d-att "(topic xnal-d)"                                 >-->

    <xs:group name="xnal-d-author">
        <xs:choice>
            <xs:group ref="authorinformation"></xs:group>
        </xs:choice>
    </xs:group>
    
    <xs:group name="authorinformation">
        <xs:choice>
            <xs:element ref="authorinformation"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="addressdetails">
        <xs:choice>
            <xs:element ref="addressdetails"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="administrativearea">
        <xs:choice>
            <xs:element ref="administrativearea"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="contactnumber">
        <xs:choice>
            <xs:element ref="contactnumber"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="contactnumbers">
        <xs:choice>
            <xs:element ref="contactnumbers"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="country">
        <xs:choice>
            <xs:element ref="country"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="emailaddress">
        <xs:choice>
            <xs:element ref="emailaddress"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="emailaddresses">
        <xs:choice>
            <xs:element ref="emailaddresses"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="firstname">
        <xs:choice>
            <xs:element ref="firstname"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="generationidentifier">
        <xs:choice>
            <xs:element ref="generationidentifier"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="honorific">
        <xs:choice>
            <xs:element ref="honorific"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="lastname">
        <xs:choice>
            <xs:element ref="lastname"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="locality">
        <xs:choice>
            <xs:element ref="locality"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="localityname">
        <xs:choice>
            <xs:element ref="localityname"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="middlename">
        <xs:choice>
            <xs:element ref="middlename"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="namedetails">
        <xs:choice>
            <xs:element ref="namedetails"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="organizationinfo">
        <xs:choice>
            <xs:element ref="organizationinfo"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="organizationname">
        <xs:choice>
            <xs:element ref="organizationname"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="organizationnamedetails">
        <xs:choice>
            <xs:element ref="organizationnamedetails"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="otherinfo">
        <xs:choice>
            <xs:element ref="otherinfo"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="personinfo">
        <xs:choice>
            <xs:element ref="personinfo"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="personname">
        <xs:choice>
            <xs:element ref="personname"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="postalcode">
        <xs:choice>
            <xs:element ref="postalcode"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="thoroughfare">
        <xs:choice>
            <xs:element ref="thoroughfare"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="url">
        <xs:choice>
            <xs:element ref="url"/>
        </xs:choice>
    </xs:group>
    
    <xs:group name="urls">
        <xs:choice>
            <xs:element ref="urls"/>
        </xs:choice>
    </xs:group>
    
    
    <xs:element name="authorinformation" >
        <xs:annotation>
            <xs:documentation>The &lt;authorinformation&gt; element contains detailed information
                about the author or authoring organization. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="authorinformation.class">
                    <xs:attribute ref="class" default="+ topic/author xnal-d/authorinformation "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="authorinformation.class">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="personinfo"/>
            <xs:group ref="organizationinfo"/>            
        </xs:choice>
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="href" type="xs:string"/>
        <xs:attribute name="type">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="creator"/>
                    <xs:enumeration value="contributor"/>
                    <xs:enumeration value="-dita-use-conref-target"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <!--<!ELEMENT addressdetails     (%words.cnt;|%locality;|%administrativearea;|
    %thoroughfare;|%country;)*                  >-->
    <xs:element name="addressdetails">
        <xs:annotation>
            <xs:documentation>The &lt;addressdetails&gt; element contains information about the
                address of the author or authoring group.</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="addressdetails.class">
                    <xs:attribute ref="class" default="+ topic/ph xnal-d/addressdetails "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="addressdetails.class" mixed="true"> 
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="words.cnt"/>
            <xs:group ref="locality"/>
            <xs:group ref="administrativearea"/>
            <xs:group ref="thoroughfare"/>
            <xs:group ref="country"/>
        </xs:choice>
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="outputclass" type="xs:string"/>
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="administrativearea">
        <xs:annotation>
            <xs:documentation>The &lt;administrativearea&gt; element contains information about
                a county, state, or province. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="administrativearea.class">
                    <xs:attribute ref="class" default="+ topic/ph xnal-d/administrativearea "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="administrativearea.class" mixed="true">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="words.cnt"/>
        </xs:choice>
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="outputclass" type="xs:string"/>
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="contactnumber">
        <xs:annotation>
            <xs:documentation>A &lt;contactnumber&gt; element contains a telephone number. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="contactnumber.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/contactnumber "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="contactnumber.class" mixed="true">
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="contactnumbers">
        <xs:annotation>
            <xs:documentation>The &lt;contactnumbers&gt; element contains a list of telephone and
                fax numbers. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="contactnumbers.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/contactnumbers "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="contactnumbers.class" >
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="contactnumber"/>
        </xs:choice>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="country">
        <xs:annotation>
            <xs:documentation>The &lt;country&gt; element contains the name of a country. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="country.class">
                    <xs:attribute ref="class" default="+ topic/ph xnal-d/country "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="country.class" mixed="true">
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="outputclass" type="xs:string"/>
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="emailaddress">
        <xs:annotation>
            <xs:documentation>The &lt;emailaddress&gt; element contains an e-mail address. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="emailaddress.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/emailaddress "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="emailaddress.class" mixed="true">
        <xs:choice  minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="words.cnt"/>
        </xs:choice>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="emailaddresses">
        <xs:annotation>
            <xs:documentation>The &lt;emailaddress&gt; element contains a list of e-mail addresses. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="emailaddresses.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/emailaddresses "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="emailaddresses.class">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="emailaddress"/>
        </xs:choice>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="firstname">
        <xs:annotation>
            <xs:documentation>The &lt;firstname&gt; element contains the person's first name. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="firstname.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/firstname "/>            
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="firstname.class" mixed="true">
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="generationidentifier">
        <xs:annotation>
            <xs:documentation>The &lt;generationidentifier&gt; element contains information about
                the person's generation, such as: Jr, III, or VIII.</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="generationidentifier.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/generationidentifier "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="generationidentifier.class" mixed="true">
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="honorific">
        <xs:annotation>
            <xs:documentation>The &lt;honorific&gt; element contains the person's title, such as:
                Dr., Mr., Ms., HRH.. or Grand Exalted Wizard. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="honorific.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/honorific "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="honorific.class" mixed="true">
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="lastname">
        <xs:annotation>
            <xs:documentation>The &lt;lastname&gt; element contains the person's last name. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="lastname.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/lastname "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="lastname.class" mixed="true">
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="locality">
        <xs:annotation>
            <xs:documentation>The &lt;locality&gt; element contains information about the city and
                postal or ZIP code. It can contain the information directly, or by acting
                as a wrapper for &lt;localityname&gt; and &lt;postalcode&gt;. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="locality.class">
                    <xs:attribute ref="class" default="+ topic/ph xnal-d/locality "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="locality.class" mixed="true">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="words.cnt"/>
            <xs:group ref="localityname"/>
            <xs:group ref="postalcode"/>
        </xs:choice>
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="outputclass" type="xs:string"/>
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="localityname">
        <xs:annotation>
            <xs:documentation>The &lt;localityname&gt; element contains the name of the locality
                or city.</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="localityname.class">
                    <xs:attribute ref="class" default="+ topic/ph xnal-d/localityname "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="localityname.class" mixed="true">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="words.cnt"/>
         </xs:choice>
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="outputclass" type="xs:string"/>
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="middlename">
        <xs:annotation>
            <xs:documentation>The &lt;middlename&gt; element contains the person's middle name or
                initial. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="middlename.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/middlename "/>            
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="middlename.class" mixed="true">
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="namedetails">
        <xs:annotation>
            <xs:documentation>The &lt;namedetails&gt; element contains information about the name
                of the author or the authoring organization. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="namedetails.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/namedetails "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="namedetails.class">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="personname"/>
            <xs:group ref="organizationnamedetails"/>
        </xs:choice>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="organizationinfo">
        <xs:annotation>
            <xs:documentation>The &lt;organizationinfo&gt; element contains detailed information
                about an authoring organization. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="organizationinfo.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/organizationinfo "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="organizationinfo.class">
        <xs:sequence>
            <xs:group ref="namedetails" minOccurs="0"/>
            <xs:group ref="addressdetails" minOccurs="0"/>
            <xs:group ref="contactnumbers" minOccurs="0"/>
            <xs:group ref="emailaddresses" minOccurs="0"/>
            <xs:group ref="urls" minOccurs="0"/>
        </xs:sequence>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="organizationname">
        <xs:annotation>
            <xs:documentation>The &lt;organizationname&gt; element contains name information about
                the authoring organization. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="organizationname.class">
                    <xs:attribute ref="class" default="+ topic/ph xnal-d/organizationname "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="organizationname.class" mixed="true">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="ph.cnt"/>
        </xs:choice>
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="outputclass" type="xs:string"/>
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="organizationnamedetails">
        <xs:annotation>
            <xs:documentation>The &lt;organizationnamedetails&gt; element contains information about
                the name of an authoring organization. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="organizationnamedetails.class">
                    <xs:attribute ref="class" default="+ topic/ph xnal-d/organizationnamedetails "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="organizationnamedetails.class">
        <xs:sequence>
            <xs:group ref="organizationname" minOccurs="0" />
            <xs:group ref="otherinfo" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="outputclass" type="xs:string"/>
        <xs:attributeGroup ref="global-atts"/>        
    </xs:complexType>
    
    <xs:element name="otherinfo">
        <xs:annotation>
            <xs:documentation>The &lt;otherinfo&gt; element contains other name information about
                the author or authoring organization. </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="otherinfo.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/otherinfo "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="otherinfo.class" mixed="true">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="words.cnt"/>
        </xs:choice>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="personinfo">
        <xs:annotation>
            <xs:documentation>The &lt;personinfo&gt; element is a wrapper containing all relevant
                data about a person, including name, address, and contact information.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="personinfo.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/personinfo "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="personinfo.class" >
        <xs:sequence>
            <xs:group ref="namedetails" minOccurs="0"/>
            <xs:group ref="addressdetails" minOccurs="0"/>
            <xs:group ref="contactnumbers" minOccurs="0"/>
            <xs:group ref="emailaddresses" minOccurs="0"/>
        </xs:sequence>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="personname">
        <xs:annotation>
            <xs:documentation>The &lt;personname&gt; element contains name information about the
                author.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="personname.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/personname "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="personname.class">
        <xs:sequence>
            <xs:group ref="honorific" minOccurs="0"/>
            <xs:group ref="firstname" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="middlename" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="lastname" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="generationidentifier" minOccurs="0"/>
            <xs:group ref="otherinfo" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="postalcode">
        <xs:annotation>
            <xs:documentation>The &lt;postalcode&gt; element contains information about the postal
                code  or the ZIP code.</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="postalcode.class">
                    <xs:attribute ref="class" default="+ topic/ph xnal-d/postalcode "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="postalcode.class" mixed="true">
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="outputclass" type="xs:string"/>
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
   
    <xs:element name="thoroughfare">
        <xs:annotation>
            <xs:documentation>The &lt;thoroughfare&gt; element contains information about the thoroughfare
                - for example, the street, avenue, or boulevard - on which an address is located.</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="thoroughfare.class">
                    <xs:attribute ref="class" default="+ topic/ph xnal-d/thoroughfare "/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="thoroughfare.class" mixed="true">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="words.cnt"/>
        </xs:choice>
        <xs:attributeGroup ref="univ-atts"/>
        <xs:attribute name="keyref" type="xs:string"/>
        <xs:attribute name="outputclass" type="xs:string"/>
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="url">
        <xs:annotation>
            <xs:documentation>The &lt;url&gt; element contains a Uniform Resource Locator (URL). </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:complexContent>
                <xs:extension base="url.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/url "/>                    
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="url.class" mixed="true">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="words.cnt"/>
        </xs:choice>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
    <xs:element name="urls">
        <xs:annotation>
            <xs:documentation>The &lt;urls&gt; element contains a list of Uniform Resource Locators
                (URLs). </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="urls.class">
                    <xs:attribute ref="class" default="+ topic/data xnal-d/urls "/>                    
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="urls.class">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:group ref="url"/>
        </xs:choice>
        <xs:attributeGroup ref="data-element-atts.class" />
        <xs:attributeGroup ref="global-atts"/>
    </xs:complexType>
    
</xs:schema>