Skip to topic | Skip to bottom
Home

Tesi
Tesi.DppElementiLocalir1.3 - 22 Sep 2005 - 15:27 - GiuliaGambinitopic end

Start of topic | Skip to actions
-- GiuliaGambini - 08 Feb 2005

Stili ed elementi locali e ref

Se non adopero stili di conversione, allora converto tutto esattamente come sta, con elementi locali in elementi locali e elementi globali in elementi globali e ref quando ci sono *.

Viceversa, se l''utente richiede uno specifico stile di progettazione, allora il sistema cerca di convertire usando quello specifico stile, salvo le eccezioni.

Ad esempio, poichč nello stile tende alla veneziana o bambole russe non ci sono ref, non genera ref salvo che non sia esplicitamente richiesto con una sintassi *. Analogamente, nello stile fette di salame o giardino dell'eden non ci sono elementi locali, ma se adopero la sintassi punto, genero esplicitamente un elemento locale.

Gestione elementi locali e radici

  • Studiarsi cosa sono e come vengono usati (in particolare per ereditarieta' e polimorfismo dei tipi XML Schema)
  • Elementi locali sono elementi che vengono definiti all'interno di un tipo. Per nostra fortuna, TUTTI i tipi nominali sono globali. Quindi tipo.nome puo' essere considerato come la definizione di un elemento locale.

<xsd:complexType name="pippo">
   <xsd:element name="pluto" type="xsd:integer"/>
</xsd:complexType>

puo' diventare:

<!ENTITY @ pippo (pluto) >
<!ELEMENT pippo.pluto #INTEGER>
   

  • Tipi anonimi

<xsd:element name="paperino">
   <xsd:complexType>
      <xsd:element name="pluto" type="xsd:integer"/>
   </xsd:complexType>
</element>

puo' diventare:

<!ELEMENT paperino (pluto)>
<!ELEMENT pluto #INTEGER>

  • Uso di ref

<xsd:element name="topolino" type="xsd:integer"/>

<xsd:complexType name="minnie">
   <xsd:element ref="topolino"/>
</xsd:complexType>
puo' diventare:
<!ELEMENT topolino (#INTEGER)>
<!ENTITY @ minnie "(*topolino)">
Analogamente

<xsd:element name="ciccio" type="xsd:integer"/>

<xsd:element name="nonnapapera">
   <xsd:complexType>
      <xsd:element ref="ciccio"/>
   </xsd:complexType>
</element>

puo' diventare:

<!ELEMENT ciccio #INTEGER>
<!ELEMENT nonnapapera (*ciccio)>

Elementi radice --OK

Per generare correttamente schemi in bambole russe o tende alla veneziana, e' necessario identificare con precisione quale o quali elementi possono essere eleemnti radice e quindi diventare il o gli elementi globali dello schema.

A tal fine introduciamo la struttura ROOT

<!ROOT doc (a,b,c) >

č del tutto equivalente alla struttura

<!ELEMENT doc (a,b,c) >

e in pių porta l'informazione che doc č una radice. Posso avere pių radici. In questo caso debbo creare piu' strutture a bambole russe o tende alla veneziana all'interno dello stesso documento, eventualmente ripetendo le strutture e le definizioni che hanno in comune.
to top


You are here: Tesi > DeveloperCorner? > DppElementiLocali

to top

Copyright © 1999-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Fabio's Wiki? Send feedback