- Sample XML documents
- mails.xsd
- mails.xml

# XML Schema sample documents

CDuce: documentation: User's manual: XML Schema sample documents

XML Schema Interfacing CDuce with OCaml

## Sample XML documents

All the examples you will see in the manual section regarding CDuce's XML Schema support are related to the XML Schema Document `mails.xsd` and to the XML Schema Instance `mails.xml` reported below.

## mails.xsd

    <!-- mails.xsd -->

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

     <xsd:element name="mails" type="mailsType" />

     <xsd:complexType name="mailsType">
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
       <xsd:element name="mail" type="mailType" />
      </xsd:sequence>
     </xsd:complexType>

     <xsd:complexType name="mailType">
      <xsd:sequence>
       <xsd:element name="envelope" type="envelopeType" />
       <xsd:element name="body" type="bodyType" />
       <xsd:element name="attachment" type="attachmentType"
    		minOccurs="0" maxOccurs="unbounded" />
      </xsd:sequence>
      <xsd:attribute use="required" name="id" type="xsd:integer" />
     </xsd:complexType>

     <xsd:element name="header">
      <xsd:complexType>
       <xsd:simpleContent>
        <xsd:extension base="xsd:string">
         <xsd:attribute ref="name" use="required" />
        </xsd:extension>
       </xsd:simpleContent>
      </xsd:complexType>
     </xsd:element>

     <xsd:element name="Date" type="xsd:dateTime" />

     <xsd:complexType name="envelopeType">
      <xsd:sequence>
       <xsd:element name="From" type="xsd:string" />
       <xsd:element name="To" type="xsd:string" />
       <xsd:element ref="Date" />
       <xsd:element name="Subject" type="xsd:string" />
       <xsd:element ref="header" minOccurs="0" maxOccurs="unbounded" />
      </xsd:sequence>
      <xsd:attribute name="From" type="xsd:string" use="required" />
     </xsd:complexType>

     <xsd:simpleType name="bodyType">
      <xsd:restriction base="xsd:string" />
     </xsd:simpleType>

     <xsd:complexType name="attachmentType">
      <xsd:group ref="attachmentContent" />
      <xsd:attribute ref="name" use="required" />
     </xsd:complexType>

     <xsd:group name="attachmentContent">
      <xsd:sequence>
       <xsd:element name="mimetype">
        <xsd:complexType>
         <xsd:attributeGroup ref="mimeTypeAttributes" />
        </xsd:complexType>
       </xsd:element>
       <xsd:element name="content" type="xsd:string" minOccurs="0" />
      </xsd:sequence>
     </xsd:group>

     <xsd:attribute name="name" type="xsd:string" />

     <xsd:attributeGroup name="mimeTypeAttributes">
      <xsd:attribute name="type" type="mimeTopLevelType" use="required" />
      <xsd:attribute name="subtype" type="xsd:string" use="required" />
     </xsd:attributeGroup>

     <xsd:simpleType name="mimeTopLevelType">
      <xsd:restriction base="xsd:string">
       <xsd:enumeration value="text" />
       <xsd:enumeration value="multipart" />
       <xsd:enumeration value="application" />
       <xsd:enumeration value="message" />
       <xsd:enumeration value="image" />
       <xsd:enumeration value="audio" />
       <xsd:enumeration value="video" />
      </xsd:restriction>
     </xsd:simpleType>

    </xsd:schema>

## mails.xml

    <!-- mails.xml -->

    <mails>
      <mail id="0">
        <envelope From="bill@microsoft.com">
          <From>user@unknown.domain.org</From>
          <To>user@cduce.org</To>
          <Date>2003-10-15T15:44:01Z</Date>
          <Subject>I desperately need XML Schema support in CDuce</Subject>
          <header name="Reply-To">bill@microsoft.com</header>
        </envelope>
        <body>
          As subject says, is it possible to implement it?
        </body>
        <attachment name="signature.doc">
          <mimetype type="application" subtype="msword"/>
          <content>
    	### removed by spamoracle ###
          </content>
        </attachment>
      </mail>
      <mail id="1">
        <envelope From="zack@cs.unibo.it">
          <From>zack@di.ens.fr</From>
          <To>bill@microsoft.com</To>
          <Date>2003-10-15T16:17:39Z</Date>
          <Subject>Re: I desperately need XML Schema support in CDuce</Subject>
        </envelope>
        <body>
          user@unknown.domain.org wrote:
          > As subject says, is possible to implement it?

          Sure, I'm working on it, in a few years^Wdays it will be finished
        </body>
      </mail>
    </mails>

Site map

CDuce: documentation: User's manual: XML Schema sample documents

XML Schema Interfacing CDuce with OCaml