Curs Flash

In general, Namespace e folosit in XML pentru a grupa intr-un set cu acelasi nume mai multe elemente sau atribute cu rol asemanator; e utilizat mai ales la RSS.
In fisierele XML, Namespace se defineste cu un atribut xmlns la care se atribuie cu doua-puncte (:) un prefix (sau nume) pt. Namespace si ca valoare se adauga un sir, care de obicei e o adresa URI (Uniform Resource Identifier). Sintaxa este:
                xmlns:prefix="uri"
De exemplu:

<poze xmlns:ns="https://marplo.net">
  <ns:image>img1.jpg</ns:image>
  <image>img2.png</image>
</poze>
- "ns" reprezinta numele Namespace-ului (prefixul), poate fi orice cuvant.
- "https://marplo.net" este o valoare de identificare pt. acest Namespace, poate fi orice sir de cuvinte, dar de obicei se folosesc adrese URI care pot fi si ne-valide, fara legatura cu site-ul (de ce se obisnuiesc adrese? - ei stiu).
Elementele si atributele cu acelasi nume de Namespace sunt considerate ca facand parte dintr-un acelasi grup.
Namespace poate fi declarat in elementul care-l foloseste sau in radacina, se pot defini mai multe namespace in acelasi tag.

1. Lucru cu namespace in E4X

Pentru lucru cu namespace folosind sintaxa E4X, in ActionScript exista mai multe metode a clasei XML.


De exemplu:
// Variabila cu datele XML
var galery:XML = <poze xmlns:ns="https://marplo.net">
  <ns:image>img1.jpg</ns:image>
  <image>img2.png</image>
</poze>;

trace(galery.image[0].namespace('ns'));       // https://marplo.net
trace(galery.image[1].namespace('ns'));      // Error #1010: A term is undefined

• Pentru a crea namespace in ActionScript se foloseste clasa Namespace. Iar cu proprietatile ei: prefix si uri pot fi accesate si editate numele si valoare namespace din acea instanta.
                var nume_var:Namespace = new Namespace();
- La declararea ei pot fi adaugate prefixul (numele) si valoarea pt. namespace ( new Namespace("prefix", "valoare_uri" ) ) sau pot fi setate ulterior cu proprietatile "prefix" si "uri".
Dupa ce instanta de obiect Namespace e definita, poate fi adaugata in obiectul XML cu metoda addNamespace().
In urmatorul exemplu se creaza un obiect cu date XML, simplu, cu 2 taguri in radacina si un atribut la al adoile. Se defineste un namespace care va fi adaugat in primul tag si la atributul din al doilea.
// Variabila cu datele XML
var test:XML = <root>
    <tag>Text elm1</tag>
    <tag atr="val">Elm 2</tag>
  </root>;

// Se defineste instanta cu namespace-ul
var ns1:Namespace = new Namespace('ns', 'marplo.net/flash');

// Adauga namespace-ul in obiectul XML (in tag-ul radacina)
test.addNamespace(ns1);

test.tag[0].setNamespace(ns1);         // Seteaza "ns" la primul <tag>

// Seteaza "ns" la atributul "atr" din al doilea <tag>
test.tag[0].@atr.setNamespace(ns1);
// Sau:        test.children()[1].@atr.setNamespace(ns1);

trace(test);
/* Afiseaza:
  <root xmlns:ns="marplo.net/flash">
    <ns:tag>Text elm1</ns:tag>
    <tag ns:atr="val">Elm 2</tag>
  </root>
*/
- Din rezultatul returnat de "trace()" se vede ca a fost adaugat namespace-ul in XML, la primul <tag> si la "atr".
- De observat modul in care "ns1" e adaugat la atributul din al doilea <tag>. Desi ca ordine este al doilea element, s-a folosit index [0]. Asta deoarece inainte de aceasta instructiune, primul <tag> a primit un namespace, iar "tag[index]" acceseaza elementele <tag> fara namespace, ceea ce face ca index 0 sa fie la primul tag fara namespace. Pentru a evita confuzia ce poate sa apara in astfel de cazuri, ca sa se foloseasca ordine in care sunt elementele in continutul XML, se foloseste metoda "children()".
De ex.:         test.children()[1].@atr.setNamespace(ns1);

2. Utilizare operator doua-puncte (::)

E4X contine si un operator special pentru lucrul cu nodurile (nodes) care contin namespace, operatorul doua-puncte (::).
Cu acesta se pot accesa nodurile (elemente, atribute) care folosesc acelasi namespace. Se adauga intr-o instanta de tip Namespace acele noduri, cu metoda "namespace('prefix')", dupa care pot fi accesate cu sintaxa:
                ObiectXML.instantaNamespace::nod
Se intelege mai bine din urmatorul exemplu:

// Variabila cu datele XML
var galery:XML = <poze xmlns:ns="https://marplo.net">
    <ns:image>img1.jpg</ns:image>
    <ns:image ns:title="Img 2">img2.png</image>
  </poze>

// Adauga intr-o instanta Namespace toate elementele (si atribute) cu "ns"
var name_s:Namespace = galery.namespace('ns');

trace(galery.name_s::image[0]);                     // img1.jpg
trace(galery.name_s::image[1].@name_s::title);      // Img 2
- Observati in datele XML cum se aplica instanta Namespace la elemente si atribute (ns:tag , ns:atribut), apoi, instanta "name_s" le stocheaza in ordine (ca un Array), iar accesarea lor se face cu operatorul (::), conform sintaxei de mai sus.

Folosind acest operator, elementele stocate in instanta de obiect Namespace pot fi de asemenea editate si sterse.
De exemplu:
        galery.name_s::image[1].@name_s::title = 'Alt titlu';
- Modifica valoarea atributului "title" din al doilea element <image>.
Iar instructiunea:
        delete galery.name_s::image[0];
- Sterge primul element <image>.

• Elementele cu namespace pot fie accesate fi prin metode ierarhice ( child((), children() ), fie prin instanta de obiect cu acel namespace si operatorul doua-puncte (::). Simplu, cu "element[index]" se acceseaza doar elementele fara namespace, dupa cum e aratat in urmatorul exemplu.
// Variabila cu datele XML
var test:XML = <root xmlns:ns="marplo.net/flash">
    <ns:tag>Text elm1</ns:tag>
    <tag ns:atr="val">Elm 2</tag>
  </root>

// Returneaza valoarea din primul element, folosind tag[0]
trace(test.tag[0]);          // Elm 2   (e al doilea, dar primul fara namespace)

// Returneaza valoarea din primul element, folosind children()[0]
trace(test.children()[0]);         // Text elm1

Fisierul FLA cu exemple din aceasta lectie poate fi descarcat de la: XML - E4X - Namespace.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag HTML5 este indicat sa contina meniul cu link-uri de navigare in site?
<section> <nav> <article>
<nav><ul>
 <li><a href="http://coursesweb.net/css/" title="CSS Course">CSS Course</a></li>
 <li><a href="http://www.marplo.net/jocuri/" title="Flash Games">Flash Games</a></li>
</ul></nav>
Ce proprietate CSS muta elementrul in dreapta sau stanga de la locul unde e?
text-align clear float
.some_class {
  width: 30%;
  float: left;
}
Clic pe metoda obiectului Math care rotunjeste numarul x descrescator la cel mai apropiat intreg.
Math.ceil(x) Math.abs(x) Math.floor(x)
var num = 12.34567;
num = Math.floor(num);
alert(num);       // 12
Indicati functia PHP care returneaza numarul de caractere dintr-un sir.
mb_strlen() count() stristr()
$str = "sir cu caractere utf-8 åèö";
$nrchr = mb_strlen($str);
echo $nrchr;        // 29
Clic pe raspunsul potrivit la intrebarea: "When it happened?".
On the 7th of July 1996 It is a quarter to 5. Nice weather.
When it happened? On the 8th of August 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Indicati raspunsul potrivit la intrebarea: "¿Cuando sucedió?".
Hace buen tiempo. En el 8 de Agosto de 2001 Son las tres menos cuarto.
¿Cuando sucedió? En el 8 de Agosto de 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Namespace XML - E4X

Last accessed pages

  1. Curs de Miracole (4404)
  2. Pronumele in limba engleza - Pronouns (54846)
  3. Verbe modale - SHALL, SHOULD, OUGHT TO, WILL, WOULD, USED TO, BE TO, DARE (33915)
  4. Adverbele in limba engleza - Adverbs (33520)
  5. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (277211)

Popular pages this month

  1. Curs HTML gratuit Tutoriale HTML5 (754)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (709)
  3. Coduri pt culori (564)
  4. Creare si editare pagini HTML (252)
  5. Formatare text in pagina html (231)