Está en la página 1de 11

FISIERUL XML <DataSetLocatari> <Adresa> <pk_id>1</pk_id> <Strada>Sarguintei</Strada> <Numar>12</Numar> <Cladire> <pk_id>1</pk_id> <idAdresa>1</idAdresa> <Persoana> <pk_id>1</pk_id> <Nume>Malai</Nume> <Prenume>Nicolae </Prenume>

<DataNasterii>1984-04-01T00:00:00+03:00</DataNasterii> <Cladire>1</Cladire> <Telefon> <pk_id>1</pk_id> <idPersoana>1</idPersoana> <Telefon>234443434</Telefon> </Telefon> </Persoana> <Persoana> <pk_id>3</pk_id> <Nume>Ionescu</Nume> <Prenume>Stan</Prenume> <DataNasterii>1975-08-22T00:00:00+03:00</DataNasterii> <Cladire>1</Cladire> <Telefon> <pk_id>4</pk_id> <idPersoana>3</idPersoana> <Telefon>0265234234</Telefon> </Telefon> <PersoanaPrieten> <Persoana>2</Persoana> <Prieten>3</Prieten> </PersoanaPrieten> </Persoana> </Cladire> </Adresa> <Adresa> <pk_id>2</pk_id> <Strada>Sarguintei</Strada> <Numar>23</Numar> <Cladire> <pk_id>2</pk_id> <idAdresa>2</idAdresa>

<Persoana> <pk_id>2</pk_id> <Nume>Gyorfy</Nume> <Prenume>Agata</Prenume> <DataNasterii>1955-05-04T00:00:00+03:00</DataNasterii> <Cladire>2</Cladire> <Telefon> <pk_id>2</pk_id> <idPersoana>2</idPersoana> <Telefon>2344434443</Telefon> </Telefon> <Telefon> <pk_id>3</pk_id> <idPersoana>2</idPersoana> <Telefon>7434545443</Telefon> </Telefon> <PersoanaPrieten> <Persoana>3</Persoana> <Prieten>2</Prieten> </PersoanaPrieten> </Persoana> </Cladire> </Adresa> <Adresa> <pk_id>3</pk_id> <Strada>Gh. Doja</Strada> <Numar>4</Numar> <Cladire> <pk_id>3</pk_id> <idAdresa>3</idAdresa> <Persoana> <pk_id>4</pk_id> <Nume>Avram</Nume> <Prenume>Dana</Prenume> <DataNasterii>1964-07-03T00:00:00+03:00</DataNasterii> <Cladire>3</Cladire> <Telefon> <pk_id>5</pk_id> <idPersoana>4</idPersoana> <Telefon>4566656565</Telefon> </Telefon> <PersoanaPrieten> <Persoana>1</Persoana> <Prieten>4</Prieten> </PersoanaPrieten> <PersoanaPrieten>

<Persoana>2</Persoana> <Prieten>4</Prieten> </PersoanaPrieten> <PersoanaPrieten> <Persoana>3</Persoana> <Prieten>4</Prieten> </PersoanaPrieten> <PersoanaPrieten> <Persoana>5</Persoana> <Prieten>4</Prieten> </PersoanaPrieten> </Persoana> <Persoana> <pk_id>5</pk_id> <Nume>Norbert</Nume> <Prenume>Sandor</Prenume> <DataNasterii>1932-04-15T00:00:00+03:00</DataNasterii> <Cladire>3</Cladire> <Telefon> <pk_id>6</pk_id> <idPersoana>5</idPersoana> <Telefon>3455545454</Telefon> </Telefon> <Telefon> <pk_id>7</pk_id> <idPersoana>5</idPersoana> <Telefon>2343434777</Telefon> </Telefon> <PersoanaPrieten> <Persoana>1</Persoana> <Prieten>5</Prieten> </PersoanaPrieten> </Persoana> </Cladire> </Adresa> <Adresa> <pk_id>4</pk_id> <Strada>Gh. Doja</Strada> <Numar>55</Numar> <Cladire> <pk_id>4</pk_id> <idAdresa>4</idAdresa> <Persoana> <pk_id>6</pk_id> <Nume>Faluvegy </Nume> <Prenume>Attila</Prenume>

<DataNasterii>1987-01-06T00:00:00+02:00</DataNasterii> <Cladire>4</Cladire> <Telefon> <pk_id>8</pk_id> <idPersoana>6</idPersoana> <Telefon>5545454545</Telefon> </Telefon> <PersoanaPrieten> <Persoana>5</Persoana> <Prieten>6</Prieten> </PersoanaPrieten> </Persoana> <Persoana> <pk_id>7</pk_id> <Nume>Popescu</Nume> <Prenume>Matei</Prenume> <DataNasterii>1978-09-30T00:00:00+03:00</DataNasterii> <Cladire>4</Cladire> <PersoanaPrieten> <Persoana>2</Persoana> <Prieten>7</Prieten> </PersoanaPrieten> <PersoanaPrieten> <Persoana>5</Persoana> <Prieten>7</Prieten> </PersoanaPrieten> </Persoana> </Cladire> </Adresa> <Adresa> <pk_id>5</pk_id> <Strada>Armoniei</Strada> <Numar>2</Numar> <Cladire> <pk_id>5</pk_id> <idAdresa>5</idAdresa> <Persoana> <pk_id>8</pk_id> <Nume>Aleonorei</Nume> <Prenume>Varvara</Prenume> <DataNasterii>1970-11-27T00:00:00+02:00</DataNasterii> <Cladire>5</Cladire> </Persoana> <Persoana> <pk_id>9</pk_id> <Nume>Catinean</Nume>

<Prenume>Albert</Prenume> <DataNasterii>1968-03-11T00:00:00+02:00</DataNasterii> <Cladire>5</Cladire> </Persoana> </Cladire> </Adresa> <Adresa> <pk_id>6</pk_id> <Strada>Armoniei</Strada> <Numar>3</Numar> <Cladire> <pk_id>6</pk_id> <idAdresa>6</idAdresa> </Cladire> </Adresa> </DataSetLocatari> FISIERUL XMLS <xs:schema id="DataSetLocatari" targetNamespace="http://tempuri.org/DataSetLocatari.xsd" xmlns:mstns="http://tempuri.org/DataSetLocatari.xsd" xmlns="http://tempuri.org/DataSetLocatari.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemasmicrosoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:element name="DataSetLocatari" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Adresa"> <xs:complexType> <xs:sequence> <xs:element name="pk_id" msdata:ReadOnly="true" msdata:AutoIncrement="true" type="xs:long" /> <xs:element name="Strada" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Numar" type="xs:int" minOccurs="0" /> <xs:element name="Cladire" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:appinfo>

<msdata:Relationship name="FK_Cladire_Adresa" msdata:parent="Adresa" msdata:child="Cladire" msdata:parentkey="pk_id" msdata:childkey="idAdresa" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="pk_id" msdata:ReadOnly="true" msdata:AutoIncrement="true" type="xs:long" /> <xs:element name="idAdresa" type="xs:long" /> <xs:element name="Culoare" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Persoana" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:appinfo> <msdata:Relationship name="FK_Persoana_Cladire" msdata:parent="Cladire" msdata:child="Persoana" msdata:parentkey="pk_id" msdata:childkey="Cladire" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="pk_id" msdata:ReadOnly="true" msdata:AutoIncrement="true" type="xs:long" /> <xs:element name="Nume"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Prenume"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="DataNasterii" type="xs:dateTime" /> <xs:element name="Cladire" type="xs:long" /> <xs:element name="Telefon" minOccurs="0" maxOccurs="unbounded"> <xs:annotation>

<xs:appinfo> <msdata:Relationship name="FK_Telefon_Persoana" msdata:parent="Persoana" msdata:child="Telefon" msdata:parentkey="pk_id" msdata:childkey="idPersoana" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="pk_id" msdata:ReadOnly="true" msdata:AutoIncrement="true" type="xs:long" /> <xs:element name="idPersoana" type="xs:long" /> <xs:element name="Telefon" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="20" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PersoanaPrieten" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:appinfo> <msdata:Relationship name="FK_PersoanaPrieten_Persoana1" msdata:parent="Persoana" msdata:child="PersoanaPrieten" msdata:parentkey="pk_id" msdata:childkey="Prieten" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="Persoana" type="xs:long" /> <xs:element name="Prieten" type="xs:long" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>

</xs:choice> </xs:complexType> <xs:unique name="Telefon_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true"> <xs:selector xpath=".//mstns:Telefon" /> <xs:field xpath="mstns:pk_id" /> </xs:unique> <xs:unique name="Persoana_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true"> <xs:selector xpath=".//mstns:Persoana" /> <xs:field xpath="mstns:pk_id" /> </xs:unique> <xs:unique name="Cladire_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true"> <xs:selector xpath=".//mstns:Cladire" /> <xs:field xpath="mstns:pk_id" /> </xs:unique> <xs:unique name="Constraint1" msdata:PrimaryKey="true"> <xs:selector xpath=".//mstns:Adresa" /> <xs:field xpath="mstns:pk_id" /> </xs:unique> </xs:element> <xs:annotation> <xs:appinfo> <msdata:Relationship name="FK_PersoanaPrieten_Persoana" msdata:parent="Persoana" msdata:child="PersoanaPrieten" msdata:parentkey="pk_id" msdata:childkey="Persoana" /> </xs:appinfo> </xs:annotation> </xs:schema> //------------------------------------------------------------------------// Tot fisierul xml for $b in DataSetLocatari return $b //------------------------------------------------------------------------// Strazile exitente for $b in DataSetLocatari/Adresa return $b/Strada //------------------------------------------------------------------------// Numerele de pe strada Armoniei for $b in DataSetLocatari/Adresa where $b/Strada = "Armoniei " return $b/Numar //-------------------------------------------------------------------------

// Persoanele care locuiesc pe Sarguintei 12 for $b in /DataSetLocatari/Adresa where $b/Strada = "Sarguintei" and $b/Numar = "12" return <Persoane>{$b/Cladire/Persoana/Nume} </Persoane> //------------------------------------------------------------------------// Numele si prenumele persoanelor existente for $b in /DataSetLocatari/Adresa/Cladire/Persoana return <Persoane>{$b/Nume}{$b/Prenume} </Persoane> //------------------------------------------------------------------------// Cate cladiri sunt goale for $b in /DataSetLocatari/Adresa where 0 = count($b/Cladire/Persoana) return <CladireGoala>{$b/Strada} {$b/Numar}</CladireGoala> //---------------------------------------------------------------------// Unde locuieste Catinean Albert for $l in /DataSetLocatari/Adresa where $l/Cladire/Persoana/Nume="Catinean" and $l/Cladire/Persoana/Prenume="Albert" return <Adresa><Strada> {data($l/Strada)}</Strada><Numar> {data($l/Numar)}</Numar></Adresa> //--------------------------------------------------------------------// Numarul de prieteni al fiecarei persoane for $l in DataSetLocatari/Adresa/Cladire/Persoana, $nume in $l/Nume, $prenume in $l/Prenume, $spatiu in " " return <Persoana> <Nume>{data($nume)} {$spatiu} { data($prenume) }</Nume> <NumarPrieteni> {count($l/PersoanaPrieten)} </NumarPrieteni></Persoana> //--------------------------------------------------------------------// Telefoanele fiecarei persoane for $l in DataSetLocatari/Adresa/Cladire/Persoana, $nume in $l/Nume, $prenume in $l/Prenume, $spatiu in " " return <Persoana> <Nume>{data( $nume )}{$spatiu}{data( $prenume )}</Nume> {for $p in $l return $p/Telefon/Telefon } </Persoana> //--------------------------------------------------------------------// Gaseste persoana care are telefonul ...

for $l in DataSetLocatari/Adresa/Cladire/Persoana, $nume in $l/Nume, $prenume in $l/Prenume, $spatiu in " " where some $p in $l/Telefon/Telefon satisfies ($p ="7434545443" ) return <Nume>{$nume/text()}{$spatiu}{$prenume/text()}</Nume> //--------------------------------------------------------------------// id - urile prietenilor lui ..... for $l in DataSetLocatari/Adresa/Cladire/Persoana where ($l/Nume = "Avram" and $l/Prenume="Dana") return <prieteni> {for $i in $l let $e := $i/PersoanaPrieten where exists($e) return $e/Persoana } </prieteni> //--------------------------------------------------------------------// Numele prietenilor lui ... for $l in DataSetLocatari/Adresa/Cladire/Persoana, $e in doc("./Oras.xml")/DataSetLocatari/Adresa/Cladire/Persoana where ($l/Nume = "Avram" and $l/Prenume="Dana" and $e/pk_id = $l/PersoanaPrieten/Persoana) return <prieteni> {$e/Nume} </prieteni> //--------------------------------------------------------------------// Nodurile care contin o aparitie a stringului "74" for $l in DataSetLocatari/Adresa/Cladire let $n := $l/*[contains(string(.), "74")] where exists($n) return <nod> {$n} </nod> //--------------------------------------------------------------------// Enumerare a nodurilor cu atribut for $l in DataSetLocatari/Adresa/Cladire return <nod> { $l/@culoare} </nod>

También podría gustarte