Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:master:mlbda:tmes:xquery:adapted-xmark-xsd

Ceci est une ancienne révision du document !


<?xml version=“1.0” encoding=“UTF-8”?> <!– xsd for auction database –> <!– Modified in order to reflect elements with the same name but different types

<xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” elementFormDefault=“qualified”>

<xs:element name="site">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="regions"/>
      <xs:element ref="categories"/>
      <xs:element ref="catgraph"/>
      <xs:element ref="people"/>
      <xs:element ref="open_auctions"/>
      <xs:element ref="closed_auctions"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="categories">
  <xs:complexType>
    <xs:sequence>
      <xs:element maxOccurs="unbounded" ref="category"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="category">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="name"/>
      <xs:element ref="description"/>
    </xs:sequence>
    <xs:attribute name="id" use="required" type="xs:ID"/>
  </xs:complexType>
</xs:element>
<xs:element name="name" type="xs:string"/>
<xs:element name="description">
  <xs:complexType>
    <xs:choice>
      <xs:element ref="text"/>
      <xs:element ref="parlist"/>
    </xs:choice>
  </xs:complexType>
</xs:element>
<xs:element name="text">
  <xs:complexType mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="bold"/>
      <xs:element ref="keyword"/>
      <xs:element ref="emph"/>
    </xs:choice>
  </xs:complexType>
</xs:element>
<xs:element name="bold">
  <xs:complexType mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="bold"/>
      <xs:element ref="keyword"/>
      <xs:element ref="emph"/>
    </xs:choice>
  </xs:complexType>
</xs:element>
<xs:element name="keyword">
  <xs:complexType mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="bold"/>
      <xs:element ref="keyword"/>
      <xs:element ref="emph"/>
    </xs:choice>
  </xs:complexType>
</xs:element>
<xs:element name="emph">
  <xs:complexType mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="bold"/>
      <xs:element ref="keyword"/>
      <xs:element ref="emph"/>
    </xs:choice>
  </xs:complexType>
</xs:element>
<xs:element name="parlist">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="listitem"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="listitem">
  <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="text"/>
      <xs:element ref="parlist"/>
    </xs:choice>
  </xs:complexType>
</xs:element>
<xs:element name="catgraph">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="edge"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="edge">
  <xs:complexType>
    <xs:attribute name="from" use="required" type="xs:IDREF"/>
    <xs:attribute name="to" use="required" type="xs:IDREF"/>
  </xs:complexType>
</xs:element>
<xs:element name="regions">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="africa"/>
      <xs:element ref="asia"/>
      <xs:element ref="australia"/>
      <xs:element ref="europe"/>
      <xs:element ref="namerica"/>
      <xs:element ref="samerica"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="africa">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="asia">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="australia">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="namerica">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="samerica">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="europe">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="item">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="location"/>
      <xs:element ref="quantity"/>
      <xs:element ref="name"/>
      <xs:element ref="payment"/>
      <xs:element ref="description"/>
      <xs:element ref="shipping"/>
      <xs:element maxOccurs="unbounded" ref="incategory"/>
      <xs:element ref="mailbox"/>
    </xs:sequence>
    <xs:attribute name="id" use="required" type="xs:ID"/>
    <xs:attribute name="featured"/>
  </xs:complexType>
</xs:element>
<xs:element name="location" type="xs:string"/>
<xs:element name="quantity" type="xs:string"/>
<xs:element name="payment" type="xs:string"/>
<xs:element name="shipping" type="xs:string"/>
<xs:element name="reserve" type="xs:string"/>
<xs:element name="incategory">
  <xs:complexType>
    <xs:attribute name="category" use="required" type="xs:IDREF"/>
  </xs:complexType>
</xs:element>
<xs:element name="mailbox">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mail"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="mail">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="from"/>
      <xs:element ref="to"/>
      <xs:element ref="date"/>
      <xs:element ref="text"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="from" type="xs:string"/>
<xs:element name="to" type="xs:string"/>
<xs:element name="date" type="xs:string"/>
<xs:element name="itemref">
  <xs:complexType>
    <xs:attribute name="item" use="required" type="xs:IDREF"/>
  </xs:complexType>
</xs:element>
<xs:element name="personref">
  <xs:complexType>
    <xs:attribute name="person" use="required" type="xs:IDREF"/>
  </xs:complexType>
</xs:element>
<xs:element name="people">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="person"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="name"/>
      <xs:element ref="emailaddress"/>
      <xs:element minOccurs="0" ref="phone"/>
      <xs:element minOccurs="0" ref="address"/>
      <xs:element minOccurs="0" ref="homepage"/>
      <xs:element minOccurs="0" ref="creditcard"/>
      <xs:element minOccurs="0" ref="profile"/>
      <xs:element minOccurs="0" ref="watches"/>
    </xs:sequence>
    <xs:attribute name="id" use="required" type="xs:ID"/>
  </xs:complexType>
</xs:element>
<xs:element name="emailaddress" type="xs:string"/>
<xs:element name="phone" type="xs:string"/>
<xs:element name="address">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="street"/>
      <xs:element ref="city"/>
      <xs:element ref="country"/>
      <xs:element minOccurs="0" ref="province"/>
      <xs:element ref="zipcode"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="street" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="province" type="xs:string"/>
<xs:element name="zipcode" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="homepage" type="xs:string"/>
<xs:element name="creditcard" type="xs:string"/>
<xs:element name="profile">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="interest"/>
      <xs:element minOccurs="0" ref="education"/>
      <xs:element minOccurs="0" ref="gender"/>
      <xs:element ref="business"/>
      <xs:element minOccurs="0" ref="age"/>
    </xs:sequence>
    <xs:attribute name="income"/>
  </xs:complexType>
</xs:element>
<xs:element name="interest">
  <xs:complexType>
    <xs:attribute name="category" use="required" type="xs:IDREF"/>
  </xs:complexType>
</xs:element>
<xs:element name="education" type="xs:string"/>
<xs:element name="income" type="xs:string"/>
<xs:element name="gender" type="xs:string"/>
<xs:element name="business" type="xs:string"/>
<xs:element name="age" type="xs:string"/>
<xs:element name="watches">
  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="watch"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="watch">
  <xs:complexType>
    <xs:attribute name="open_auction" use="required" type="xs:IDREF"/>
  </xs:complexType>
</xs:element>
<xs:element name="open_auctions">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="auction" minOccurs="0" maxOccurs="unbounded" type="open_auction_type"/> <!-- modification -->
    </xs:sequence>
  </xs:complexType>
</xs:element>
<!-- open_auction_type introduced to obtain a single type grammar -->
<xs:complexType name="open_auction_type">
 <xs:sequence>
      <xs:element ref="initial"/>
      <xs:element minOccurs="0" ref="reserve"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="bidder"/>
      <xs:element ref="current"/>
      <xs:element minOccurs="0" ref="privacy"/>
      <xs:element ref="itemref"/>
      <xs:element ref="seller"/>
      <xs:element ref="annotation"/>
      <xs:element ref="quantity"/>
      <xs:element ref="type"/>
      <xs:element ref="interval"/>
    </xs:sequence>
    <xs:attribute name="id" use="required" type="xs:ID"/>
</xs:complexType>

 
<xs:element name="privacy" type="xs:string"/>
<xs:element name="initial" type="xs:string"/>
<xs:element name="bidder">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="date"/>
      <xs:element ref="time"/>
      <xs:element ref="personref"/>
      <xs:element ref="increase"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="seller">
  <xs:complexType>
    <xs:attribute name="person" use="required" type="xs:IDREF"/>
  </xs:complexType>
</xs:element>
<xs:element name="current" type="xs:string"/>
<xs:element name="increase" type="xs:string"/>
<xs:element name="type" type="xs:string"/>
<xs:element name="interval">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="start"/>
      <xs:element ref="end"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="start" type="xs:string"/>
<xs:element name="end" type="xs:string"/>
<xs:element name="time" type="xs:string"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="amount" type="xs:string"/>
<xs:element name="closed_auctions">
  <xs:complexType>
    <xs:sequence>
         <xs:element name="auction" minOccurs="0" maxOccurs="unbounded" type="closed_auction_type"/> <!-- modification -->
           </xs:sequence>
  </xs:complexType>
</xs:element>


<!-- open_auction_type introduced to obtain a single type grammar -->
  <xs:complexType name="closed_auction_type">
    <xs:sequence>
      <xs:element ref="seller"/>
      <xs:element ref="buyer"/>
      <xs:element ref="itemref"/>
      <xs:element ref="price"/>
      <xs:element ref="date"/>
      <xs:element ref="quantity"/>
      <xs:element ref="type"/>
      <xs:element minOccurs="0" ref="annotation"/>
    </xs:sequence>
  </xs:complexType>
  
  
<xs:element name="buyer">
  <xs:complexType>
    <xs:attribute name="person" use="required" type="xs:IDREF"/>
  </xs:complexType>
</xs:element>
<xs:element name="price" type="xs:string"/>
<xs:element name="annotation">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="author"/>
      <xs:element minOccurs="0" ref="description"/>
      <xs:element ref="happiness"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="author">
  <xs:complexType>
    <xs:attribute name="person" use="required" type="xs:IDREF"/>
  </xs:complexType>
</xs:element>
<xs:element name="happiness" type="xs:string"/>

</xs:schema>

site/enseignement/master/mlbda/tmes/xquery/adapted-xmark-xsd.1638363996.txt.gz · Dernière modification: 01/12/2021 14:06 par amine