Home » Articole » RO » Calculatoare » Dezvoltarea web » XML » Relația unu-la-unu în XML

Relația unu-la-unu în XML

postat în: XML 0

În capitolul anterior, au fost introduse câteva caracteristici noi ale schemelor, documentelor și foilor de stil XML, precum și modul de modelare a unei relații unu-la-mulți. În acest capitol, vom introduce modelarea unei relații unu-la-unu în XML. Vom introduce, de asemenea, mai multe caracteristici ale unei scheme XML.

O relație unu-la-unu (1:1)

Următoarea diagramă arată o relație unu-la-unu și unu-la-mulți. Relația unu-la-unu înregistrează fiecare țară ca o singură destinație de top.

Model de date XML pentru o relație 1:1
Figura 4-1: Model de date pentru o relație 1:1

Schema XML

O relație unu-la-unu (1:1) este reprezentată în modelul de date din Figura 4-1. Adăugarea țării și a destinației la modelul de date permite relația 1:1 numită topDestination. O țară are multe destinații diferite, dar o singură destinație de top. Schema XML din Figura 4-2 arată cum să reprezinte o relație 1:1 într-o schemă XML.

Exemplu de schemă XML

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified"> 
<!--
Tour Guide
--> 
 <xsd:element name="tourGuide"> 
  <xsd:complexType> 
   <xsd:sequence> 
    <xsd:element name="country" type="countryDetails" minOccurs="1" maxOccurs="unbounded" /> 
   </xsd:sequence> 
  </xsd:complexType> 
 </xsd:element> 
<!--
Country
--> 
 <xsd:complexType name="countryDetails"> 
  <xsd:sequence> 
   <xsd:element name="countryName" type="xsd:string" minOccurs="1" maxOccurs="1"/> 
   <xsd:element name="population" type="xsd:integer" minOccurs="0" maxOccurs="1" default="0"/> 
   <xsd:element name="continent" minOccurs="0" maxOccurs="1"> 
    <xsd:simpleType> 
     <xsd:restriction base="xsd:string"> 
      <xsd:enumeration value="Asia"/> 
      <xsd:enumeration value="Africa"/> 
      <xsd:enumeration value="Australasia"/> 
      <xsd:enumeration value="Europe"/> 
      <xsd:enumeration value="North America"/> 
      <xsd:enumeration value="South America"/> 
      <xsd:enumeration value="Antarctica"/> 
     </xsd:restriction> 
    </xsd:simpleType> 
   </xsd:element> 
   <xsd:element name="topDestination" type="destinationDetails" minOccurs="0" maxOccurs="1"/> 
   <xsd:element name="destination" type="destinationDetails" minOccurs="0" maxOccurs="unbounded"/> 
  </xsd:sequence> 
 </xsd:complexType> 
<!--
Destination
--> 
 <xsd:complexType name="destinationDetails"> 
  <xsd:all> 
   <xsd:element name="destinationName" type="xsd:string"/> 
   <xsd:element name="description" type="xsd:string"/> 
   <xsd:element name="streetAddress" type="xsd:string" minOccurs="0"/> 
   <xsd:element name="telephoneNumber" type="xsd:string" minOccurs="0"/> 
   <xsd:element name="websiteURL" type="xsd:anyURI" minOccurs="0"/> 
  </xsd:all> 
 </xsd:complexType> 
</xsd:schema>

Figura 4-2: Schema XML pentru o relație unu-la-unu

Elemente noi în schemă

Să examinăm noile elemente și atribute din schema din Figura 4-2.

  • Țara este un tip complex definit în City pentru a reprezenta relația 1:M dintre o țară și orașele sale.
  • Destination este un tip complex definit în Country pentru a reprezenta relația 1:M dintre o țară și numeroasele sale destinații.
  • topDestination este un tip complex definit în Country pentru a reprezenta relația 1:1 dintre o țară și destinația sa de top.

Restricții în schemă

Punerea de restricții asupra elementelor a fost introdusă în capitolul anterior; cu toate acestea, există mai multe restricții potențial utile care pot fi aplicate unui element. Restricțiile pot fi aplicate elementelor și atributelor care afectează modul în care procesorul gestionează caracterele spațiilor albe:

<xsd:element name="streetAddress">
 <xsd:simpleType>
  <xsd:restriction base="xsd:string">
   <xsd:whiteSpace value="preserve"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>

Constrângeri de spațiu și lungime

Constrângerea whiteSpace este setată la „preserve”, ceea ce înseamnă că procesorul XML nu va elimina niciun caracter de spațiu alb. Alte restricții utile includ următoarele:

  • Replace – procesorul XML va înlocui toate caracterele spațiilor albe cu spații.<xsd:whiteSpace value=”replace”/>
  • Collapse – Procesorul va elimina toate caracterele spațiilor albe.<xsd:whiteSpace value=”collapse”/>
  • Length, maxLength, minLength—lungimea elementului poate fi fixă sau poate avea un interval predefinit.<xsd:length value=”8″/>
    <xsd:minLength value=”5″/>
    <xsd:maxLength value=”8″/>

Indicatori de ordine

Pe lângă introducerea de restricții asupra elementelor, indicatorii de oridne pot fi utilizați pentru a defini în ce ordine elementele ar trebui să apară.

Indicatorul all

Indicatorul <all> specifică implicit că elementele copil pot apărea în orice ordine și că fiecare element copil trebuie să apară o dată și o singură dată:

<xsd:element name="person">
 <xsd:complexType>
  <xsd:all>
   <xsd:element name="firstname" type="xsd:string"/>
   <xsd:element name="lastname" type="xsd:string"/>
  </xsd:all>
 </xsd:complexType>
</xsd:element>
Indicatorul choice

Indicatorul <choice> specifică faptul că poate apărea fie un element copil, fie altul:

<xsd:element name="person">
 <xsd:complexType>
  <xsd:choice>
   <xsd:element name="employee" type="employee"/>
   <xsd:element name="visitor" type="visitor"/>
  </xsd:choice>
 </xsd:complexType>
</xsd:element>
Indicatorul sequence

Indicatorul <sequence> specifică faptul că elementele copil trebuie să apară într-o anumită ordine:

<xsd:element name="person">
 <xsd:complexType>
  <xsd:sequence>
   <xsd:element name="firstname" type="xsd:string"/>
   <xsd:element name="lastname" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
</xsd:element>

Document XML

Documentul XML din Figura 4-3 arată modul în care noile elemente (country și destination) definite în schema XML găsită în Figura 4-2 sunt utilizate într-un document XML. Rețineți că elementele secundare ale <topDestination> pot apărea în orice ordine datorită indicatorului de ordine <xsd:all> utilizat în schemă.

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="newXMLSchema.xsl" media="screen"?>
<tourGuide xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="XMLSchema.xsd">   
<!--
Malaysia
-->   
<country> 
   <countryName>Malaysia</countryName> 
   <population>22229040</population> 
   <continent>Asia</continent> 
   <topDestination> 
    <description>A popular duty-free island north of Penang.</description> 
    <destinationName>Pulau Langkawi</destinationName> 
   </topDestination> 
   <destination> 
    <destinationName>Muzium Di-Raja</destinationName> 
    <description>The original palace of the Sultan</description>
    <streetAddress>122 Muzium Road</streetAddress>
    <telephoneNumber>48494030</telephoneNumber>
    <websiteURL>www.muziumdiraja.com</websiteURL> 
   </destination> 
   <destination> 
    <destinationName>Kinabalu National Park</destinationName> 
    <description>A national park</description>
    <streetAddress>54 Ocean View Drive</streetAddress>
    <telephoneNumber>4847101</telephoneNumber>
    <websiteURL>www.kinabalu.com</websiteURL> 
   </destination> 
  </country>
<!--
Belize
--> 
  <country> 
   <countryName>Belize</countryName> 
   <population>249183</population> 
   <continent>South America</continent> 
   <topDestination> 
    <destinationName>San Pedro</destinationName> 
    <description>San Pedro is an island off the coast of Belize</description> 
   </topDestination> 
   <destination> 
    <destinationName>Belize City</destinationName> 
    <description>Belize City is the former capital of Belize</description>
    <websiteURL>www.belizecity.com</websiteURL> 
   </destination> 
   <destination> 
    <destinationName>Xunantunich</destinationName> 
    <description>Mayan ruins</description>
    <streetAddress>4 High Street</streetAddress>
    <telephoneNumber>011770801</telephoneNumber> 
   </destination> 
  </country> 
  </tourGuide>

Figura 4-3: Document XML pentru o relație unu-la-unu

Rezumat

Designerii de scheme pot impune restricții asupra lungimii elementelor și asupra modului în care procesorul gestionează spațiul alb. Designerii de scheme pot specifica, de asemenea, valori fixe sau implicite pentru un element. Indicatorii de ordine pot fi utilizați pentru a specifica ordinea în care trebuie să apară elementele într-un document XML.

(Include texte din Wikibooks traduse și adaptate de Nicolae Sfetcu)

Tehnologia Blockchain - Bitcoin
Tehnologia Blockchain – Bitcoin

Internetul a schimbat complet lumea, cultura şi obiceiurile oamenilor. După o primă fază caracterizată prin transferul liber al informaţiilor, au apărut preocupările pentru siguranţa comunicaţiilor online şi confidenţialitatea utilizatorilor. Tehnologia blockchain asigură ambele aceste deziderate. Relativ nouă, ea are şansa să producă … Citeşte mai mult

Nu a fost votat $2,99$11,99 Selectează opțiunile
Căutarea, extragerea, organizarea și evaluarea informațiilor
Căutarea, extragerea, organizarea și evaluarea informațiilor

Informația, ca și concept, include o mare diversitate de sensuri în contexte diferite, de la cele zilnice până la cele tehnice. Conceptul de informație este strâns legat de noțiunile de restricție, comunicare, control, date, forme, educație, cunoaștere, înțelegere, stimul mental, … Citeşte mai mult

Nu a fost votat $3,99$9,61 Selectează opțiunile
Introducere în inteligența artificială
Introducere în inteligența artificială

Inteligența artificială s-a dezvoltat exploziv în ultimii ani, facilitând luarea deciziilor inteligente și automate în cadrul scenariilor de implementare. Inteligența artificială se referă la un ecosistem de modele și tehnologii pentru percepție, raționament, interacțiune și învățare.  Asistăm la o convergență … Citeşte mai mult

Nu a fost votat $2,99$5,07 Selectează opțiunile

Lasă un răspuns

Adresa ta de email nu va fi publicată.