XML Eğitimi

XML ANA SAYFA XML'e Giriş XML nasıl kullanılır XML Ağacı XML Sözdizimi XML Öğeleri XML Öznitelikleri XML Ad Alanları XML Görüntüleme XML HttpTalebi XML Ayrıştırıcı XML DOM'si XML XPath'i XML XSLT'si XML XQuery XML Bağlantısı XML Doğrulayıcı XML DTD'si XML Şeması XML Sunucusu XML Örnekleri XML Testi XML Sertifikası

XML AJAX'ı

AJAX Tanıtımı AJAX XMLHttp AJAX İsteği AJAX Yanıtı AJAX XML Dosyası AJAX PHP AJAX ASP AJAX Veritabanı AJAX Uygulamaları AJAX Örnekleri

XML DOM'si

DOM Tanıtımı DOM Düğümleri DOM Erişimi DOM Düğümü Bilgisi DOM Düğüm Listesi DOM Geçişi DOM Gezinme DOM Değerleri Al DOM Değişiklik Düğümleri DOM Düğümleri Kaldır DOM Düğümleri Değiştir DOM Oluşturma Düğümleri DOM Düğüm Ekle DOM Klon Düğümleri DOM Örnekleri

XPath Eğitimi

XPath Giriş XPath Düğümleri XPath Sözdizimi XPath Eksenleri XPath Operatörleri XPath Örnekleri

XSLT Eğitimi

XSLT'ye Giriş XSL Dilleri XSLT Dönüşümü XSLT <şablon> XSLT <değeri> XSLT <her biri için> XSLT <sıralama> XSLT <if> XSLT <seç> XSLT Uygula İstemcide XSLT Sunucuda XSLT XSLT Düzenleme XML'i XSLT Örnekleri

XQuery Eğitimi

XQuery Tanıtımı XQuery Örneği XQuery FLWOR'u XQuery HTML'si XQuery Terimleri XQuery Sözdizimi XQuery Ekle XQuery Seçimi XQuery İşlevleri

XML DTD'si

DTD Giriş DTD Yapı Taşları DTD Elemanları DTD Özellikleri DTD Elemanları vs Attr DTD Varlıkları DTD Örnekleri

XSD Şeması

XSD Tanıtımı XSD Nasıl Yapılır? XSD <şema> XSD Öğeleri XSD Özellikleri XSD Kısıtlamaları

XSD Kompleksi

XSD Öğeleri XSD Boş Yalnızca XSD Öğeleri Yalnızca XSD Metin XSD Karışık XSD Göstergeleri XSD <herhangi bir> XSD <anyÖzellik> XSD Değiştirme XSD Örneği

XSD Verileri

XSD Dizisi XSD Tarihi XSD Sayısal XSD Çeşitli XSD Referansı

Web Hizmetleri

XML Hizmetleri XML WSDL'si XML SABUN XML RDF'si XML RSS'si

Referanslar

DOM Düğüm Türleri DOM Düğümü DOM Düğüm Listesi DOM AdlıDüğüm Haritası DOM Belgesi DOM Öğesi DOM Özelliği DOM Metni DOM CDATA DOM Yorumu DOM XMLHttpRequest DOM Ayrıştırıcı XSLT Öğeleri XSLT/XPath İşlevleri

XML RDF'si


RDF Belge Örneği

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="https://www.w3schools.com/rdf/">

<rdf:Description rdf:about="https://www.w3schools.com">
  <si:title>W3Schools</si:title>
  <si:author>Jan Egil Refsnes</si:author>
</rdf:Description>

</rdf:RDF>

RDF nedir?

  • RDF , Kaynak Tanımlama Çerçevesi anlamına gelir
  • RDF, web'deki kaynakları tanımlamak için bir çerçevedir.
  • RDF, bilgisayarlar tarafından okunacak ve anlaşılacak şekilde tasarlanmıştır
  • RDF, insanlara gösterilmek üzere tasarlanmamıştır
  • RDF, XML'de yazılmıştır
  • RDF, W3C'nin Semantik Web Etkinliğinin bir parçasıdır
  • RDF, 10'dan itibaren bir W3C Tavsiyesidir. Şubat 2004

RDF - Kullanım Örnekleri

  • Fiyat ve stok durumu gibi alışveriş öğelerinin özelliklerini açıklama
  • Web etkinlikleri için zaman çizelgelerini tanımlama
  • Web sayfaları hakkındaki bilgileri (içerik, yazar, oluşturulma ve değiştirilme tarihi) açıklama
  • Web resimleri için içeriği ve derecelendirmeyi tanımlama
  • Arama motorları için içeriğin açıklanması
  • Elektronik kütüphaneleri tanımlama

RDF, Bilgisayarlar Tarafından Okunmak İçin Tasarlanmıştır

RDF, bilgisayar uygulamaları tarafından okunabilmesi ve anlaşılabilmesi için bilgileri tanımlamanın ortak bir yolunu sağlamak üzere tasarlanmıştır.

RDF açıklamaları web'de görüntülenmek üzere tasarlanmamıştır.



RDF, XML'de Yazılmıştır

RDF belgeleri XML ile yazılır. RDF tarafından kullanılan XML diline RDF/XML adı verilir.

XML kullanılarak, RDF bilgileri, farklı işletim sistemleri ve uygulama dilleri kullanan farklı bilgisayar türleri arasında kolayca değiş tokuş edilebilir.


RDF ve "Semantik Web"

RDF dili, W3C'nin Semantik Web Etkinliğinin bir parçasıdır. W3C'nin "Semantik Web Vizyonu" şu durumlarda bir gelecek:

  • Web bilgilerinin kesin anlamı vardır
  • Web bilgileri bilgisayarlar tarafından anlaşılabilir ve işlenebilir
  • Bilgisayarlar web'deki bilgileri entegre edebilir

RDF, kaynakları tanımlamak için Web tanımlayıcılarını (URI'ler) kullanır.

RDF, özellikleri ve özellik değerleriyle kaynakları tanımlar.


RDF Kaynağı, Mülkü ve Mülk Değeri

RDF, Web tanımlayıcılarını (URI'ler) kullanarak şeyleri tanımlar ve özellikleri ve özellik değerleriyle kaynakları tanımlar.

Kaynak, Mülk ve Mülk değerinin açıklaması:

  • Kaynak , "https://www.w3schools.com/rdf" gibi bir URI'ye sahip olabilecek herhangi bir şeydir .
  • Mülk , "yazar" veya "ana sayfa" gibi bir adı olan bir Kaynaktır .
  • Mülk değeri , "Jan Egil Refsnes" veya "https://www.w3schools.com" gibi bir Mülkün değeridir (bir mülk değerinin başka bir kaynak olabileceğini unutmayın)

Aşağıdaki RDF belgesi, "https://www.w3schools.com/rdf" kaynağını açıklayabilir:

<?xml version="1.0"?>

<RDF>
  <Description about="https://www.w3schools.com/rdf">
    <author>Jan Egil Refsnes</author>
    <homepage>https://www.w3schools.com</homepage>
  </Description>
</RDF>

Yukarıdaki örnek basitleştirilmiştir. Ad alanları atlanmıştır.


ATY Beyanları

Bir Kaynak, bir Özellik ve bir Özellik değerinin birleşimi bir Bildirimi oluşturur (bir İfadenin konusu, yüklemi ve nesnesi olarak bilinir ).

Daha iyi anlamak için bazı örnek ifadelere bakalım:

Açıklama: "https://www.w3schools.com/rdf'nin yazarı Jan Egil Refsnes'dir".

  • Yukarıdaki açıklamanın konusu: https://www.w3schools.com/rdf
  • yüklem şudur: yazar
  • Konu: Jan Egil Refsnes

Açıklama: "https://www.w3schools.com/rdf'nin ana sayfası https://www.w3schools.com'dur".

  • Yukarıdaki açıklamanın konusu: https://www.w3schools.com/rdf
  • Yüklem şudur: ana sayfa
  • Nesne şudur: https://www.w3schools.com

ATY Örneği

İşte bir CD listesinden iki kayıt:

Title Artist Country Company Price Year
Empire Burlesque Bob Dylan USA Columbia 10.90 1985
Hide your heart Bonnie Tyler UK CBS Records 9.90 1988

Aşağıda bir RDF belgesinden birkaç satır verilmiştir:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
  <cd:artist>Bob Dylan</cd:artist>
  <cd:country>USA</cd:country>
  <cd:company>Columbia</cd:company>
  <cd:price>10.90</cd:price>
  <cd:year>1985</cd:year>
</rdf:Description>

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Hide your heart">
  <cd:artist>Bonnie Tyler</cd:artist>
  <cd:country>UK</cd:country>
  <cd:company>CBS Records</cd:company>
  <cd:price>9.90</cd:price>
  <cd:year>1988</cd:year>
</rdf:Description>
.
.
.
</rdf:RDF>

RDF belgesinin ilk satırı XML bildirimidir. XML bildirimini, RDF belgelerinin kök öğesi izler: <rdf:RDF> .

xmlns:rdf ad alanı, rdf önekine sahip öğelerin "http://www.w3.org/1999/02/22-rdf-syntax-ns#" ad alanından olduğunu belirtir .

xmlns:cd ad alanı , cd önekine sahip öğelerin "http://www.recshop.fake/cd#" ad alanından olduğunu belirtir.

<rdf:Description> öğesi , rdf:about özniteliği tarafından tanımlanan kaynağın açıklamasını içerir .

Öğeler: <cd:artist>, <cd:country>, <cd:company>, vb. kaynağın özellikleridir.


RDF Çevrimiçi Doğrulayıcı

W3C'nin RDF Doğrulama Hizmeti , RDF öğrenirken yararlıdır. Burada RDF dosyalarıyla deney yapabilirsiniz.

Çevrimiçi RDF Doğrulayıcı, RDF belgenizi ayrıştırır, sözdiziminizi kontrol eder ve RDF belgenizin tablo ve grafik görünümlerini oluşturur.

Aşağıdaki örneği kopyalayıp W3C'nin RDF doğrulayıcısına yapıştırın:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="https://www.w3schools.com/rdf/">
<rdf:Description rdf:about="https://www.w3schools.com">
  <si:title>W3Schools.com</si:title>
  <si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>

Yukarıdaki örneği ayrıştırdığınızda, sonuç aşağıdaki gibi görünecektir .


RDF Elemanları

RDF'nin ana öğeleri, bir kaynağı tanımlayan kök öğe, <RDF> ve <Description> öğesidir.


<rdf:RDF> Öğesi

<rdf:RDF>, bir RDF belgesinin kök öğesidir. XML belgesini bir RDF belgesi olarak tanımlar. Ayrıca RDF ad alanına bir başvuru içerir:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  ...Description goes here...
</rdf:RDF>

<rdf:Description> Öğesi

<rdf:Description> öğesi, about niteliğine sahip bir kaynağı tanımlar.

<rdf:Description> öğesi, kaynağı tanımlayan öğeleri içerir:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
  <cd:artist>Bob Dylan</cd:artist>
  <cd:country>USA</cd:country>
  <cd:company>Columbia</cd:company>
  <cd:price>10.90</cd:price>
  <cd:year>1985</cd:year>
</rdf:Description>

</rdf:RDF>

Öğeler, sanatçı, ülke, şirket, fiyat ve yıl http://www.recshop.fake/cd# ad alanında tanımlanmıştır. Bu ad alanı RDF'nin dışındadır (ve RDF'nin bir parçası değildir). RDF yalnızca çerçeveyi tanımlar. Öğeler, sanatçı, ülke, şirket, fiyat ve yıl başka biri tarafından tanımlanmalıdır (şirket, kuruluş, kişi vb.).


Nitelik Olarak Özellikler

Özellik öğeleri ayrıca nitelikler olarak da tanımlanabilir (elemanlar yerine):

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"
cd:artist="Bob Dylan" cd:country="USA"
cd:company="Columbia" cd:price="10.90"
cd:year="1985" />

</rdf:RDF>

Kaynak Olarak Mülkler

Özellik öğeleri kaynaklar olarak da tanımlanabilir:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
  <cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />
  ...
  ...
</rdf:Description>

</rdf:RDF>

Yukarıdaki örnekte, mülk sanatçısının bir değeri yoktur, ancak sanatçı hakkında bilgi içeren bir kaynağa referans vardır.


ATY Konteynerleri

RDF kapları, bir grup şeyi tanımlamak için kullanılır.

Grupları tanımlamak için aşağıdaki RDF öğeleri kullanılır: <Bag>, <Seq> ve <Alt>.


<rdf:Bag> Öğesi

<rdf:Bag> öğesi, belirli bir sırada olması gerekmeyen bir değerler listesini tanımlamak için kullanılır.

<rdf:Bag> öğesi yinelenen değerler içerebilir.

Örnek

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles">
  <cd:artist>
    <rdf:Bag>
      <rdf:li>John</rdf:li>
      <rdf:li>Paul</rdf:li>
      <rdf:li>George</rdf:li>
      <rdf:li>Ringo</rdf:li>
    </rdf:Bag>
  </cd:artist>
</rdf:Description>

</rdf:RDF>

<rdf:Seq> Öğesi

<rdf:Seq> öğesi, sıralı bir değerler listesini tanımlamak için kullanılır (Örneğin, alfabetik sırayla).

<rdf:Seq> öğesi yinelenen değerler içerebilir.

Örnek

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles">
  <cd:artist>
    <rdf:Seq>
      <rdf:li>George</rdf:li>
      <rdf:li>John</rdf:li>
      <rdf:li>Paul</rdf:li>
      <rdf:li>Ringo</rdf:li>
    </rdf:Seq>
  </cd:artist>
</rdf:Description>

</rdf:RDF>

<rdf:Alt> Öğesi

<rdf:Alt> öğesi, alternatif değerlerin bir listesini tanımlamak için kullanılır (kullanıcı değerlerden yalnızca birini seçebilir).

Örnek

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles">
  <cd:format>
    <rdf:Alt>
      <rdf:li>CD</rdf:li>
      <rdf:li>Record</rdf:li>
      <rdf:li>Tape</rdf:li>
    </rdf:Alt>
  </cd:format>
</rdf:Description>

</rdf:RDF>

RDF Şartları

Yukarıdaki örneklerde, konteyner elemanlarını tanımlarken "değerler listesi"nden bahsetmiştik. RDF'de bu "değerler listesi" üyeler olarak adlandırılır.

Yani, aşağıdakilere sahibiz:

  • Bir kap, şeyleri içeren bir kaynaktır.
  • İçerilen şeylere üye denir (değer listesi değil)

ATY Koleksiyonları

RDF koleksiyonları, YALNIZCA belirtilen üyeleri içerebilen grupları tanımlar.


rdf:parseType="Collection" Özelliği

Önceki bölümde görüldüğü gibi, bir kapsayıcı, içeren kaynakların üye olduğunu söyler - diğer üyelere izin verilmediğini söylemez.

RDF koleksiyonları, YALNIZCA belirtilen üyeleri içerebilen grupları tanımlamak için kullanılır.

Bir koleksiyon, rdf:parseType="Collection" özniteliği ile tanımlanır.

Örnek

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://recshop.fake/cd#">

<rdf:Description
rdf:about="http://recshop.fake/cd/Beatles">
  <cd:artist rdf:parseType="Collection">
    <rdf:Description rdf:about="http://recshop.fake/cd/Beatles/George"/>
    <rdf:Description rdf:about="http://recshop.fake/cd/Beatles/John"/>
    <rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Paul"/>
    <rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Ringo"/>
  </cd:artist>
</rdf:Description>

</rdf:RDF>

RDF Şeması ve Uygulama Sınıfları

RDF Şeması (RDFS), RDF'nin bir uzantısıdır.

RDF, kaynakları sınıflar, özellikler ve değerlerle tanımlar.

Ek olarak, RDF'nin uygulamaya özel sınıfları ve özellikleri tanımlamanın bir yoluna da ihtiyacı vardır. Uygulamaya özel sınıflar ve özellikler, RDF uzantıları kullanılarak tanımlanmalıdır.

Böyle bir uzantı, RDF Şeması'dır.


RDF Şeması (RDFS)

RDF Şeması, uygulamaya özel gerçek sınıflar ve özellikler sağlamaz.

Bunun yerine RDF Schema, uygulamaya özel sınıfları ve özellikleri tanımlamak için çerçeve sağlar.

Classes in RDF Schema are much like classes in object oriented programming languages. This allows resources to be defined as instances of classes, and subclasses of classes.


RDFS Example

The following example demonstrates some of the RDFS facilities:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">

<rdf:Description rdf:ID="animal">
  <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>

<rdf:Description rdf:ID="horse">
  <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  <rdfs:subClassOf rdf:resource="#animal"/>
</rdf:Description>

</rdf:RDF>

In the example above, the resource "horse" is a subclass of the class "animal".


Example Abbreviated

Since an RDFS class is an RDF resource we can abbreviate the example above by using rdfs:Class instead of rdf:Description, and drop the rdf:type information:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">

<rdfs:Class rdf:ID="animal" />

<rdfs:Class rdf:ID="horse">
  <rdfs:subClassOf rdf:resource="#animal"/>
</rdfs:Class>

</rdf:RDF>

That's it!


The Dublin Core

The Dublin Core Metadata Initiative (DCMI) has created some predefined properties for describing documents.

RDF is metadata (data about data). RDF is used to describe information resources.

The Dublin Core is a set of predefined properties for describing documents.

The first Dublin Core properties were defined at the Metadata Workshop in Dublin, Ohio in 1995 and is currently maintained by the Dublin Core Metadata Initiative.

Property Definition
Contributor An entity responsible for making contributions to the content of the resource
Coverage The extent or scope of the content of the resource
Creator An entity primarily responsible for making the content of the resource
Format The physical or digital manifestation of the resource
Date A date of an event in the lifecycle of the resource
Description An account of the content of the resource
Identifier An unambiguous reference to the resource within a given context
Language A language of the intellectual content of the resource
Publisher An entity responsible for making the resource available
Relation A reference to a related resource
Rights Information about rights held in and over the resource
Source A Reference to a resource from which the present resource is derived
Subject A topic of the content of the resource
Title A name given to the resource
Type The nature or genre of the content of the resource

A quick look at the table above indicates that RDF is ideal for representing Dublin Core information.


RDF Example

The following example demonstrates the use of some of the Dublin Core properties in an RDF document:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc= "http://purl.org/dc/elements/1.1/">

<rdf:Description rdf:about="https://www.w3schools.com">
  <dc:description>W3Schools - Free tutorials</dc:description>
  <dc:publisher>Refsnes Data as</dc:publisher>
  <dc:date>2008-09-01</dc:date>
  <dc:type>Web Development</dc:type>
  <dc:format>text/html</dc:format>
  <dc:language>en</dc:language>
</rdf:Description>

</rdf:RDF>

RDF Reference

The RDF namespace (xmlns:rdf) is: http://www.w3.org/1999/02/22-rdf-syntax-ns#

The RDFS namespace (xmlns:rdfs ) is: http://www.w3.org/2000/01/rdf-schema#

The recommended file extension for RDF files is .rdf. However, the extension .xml is often used to provide compatibility with old xml parsers.

The MIME type should be "application/rdf+xml".


RDFS / RDF Classes

Element Class of Subclass of
rdfs:Class All classes  
rdfs:Datatype Data types Class
rdfs:Resource All resources Class
rdfs:Container Containers Resource
rdfs:Literal Literal values (text and numbers) Resource
rdf:List Lists Resource
rdf:Property Properties Resource
rdf:Statement Statements Resource
rdf:Alt Containers of alternatives Container
rdf:Bag Unordered containers Container
rdf:Seq Ordered containers Container
rdfs:ContainerMembershipProperty Container membership properties Property
rdf:XMLLiteral XML literal values Literal

RDFS / RDF Properties

Element Domain Range Description
rdfs:domain Property Class The domain of the resource
rdfs:range Property Class The range of the resource
rdfs:subPropertyOf Property Property The property is a sub property of a property
rdfs:subClassOf Class Class The resource is a subclass of a class
rdfs:comment Resource Literal The human readable description of the resource
rdfs:label Resource Literal The human readable label (name)  of the resource
rdfs:isDefinedBy Resource Resource The definition of the resource
rdfs:seeAlso Resource Resource The additional information about the resource
rdfs:member Resource Resource The member of the resource
rdf:first List Resource  
rdf:rest List List  
rdf:subject Statement Resource The subject of the resource in an RDF Statement
rdf:predicate Statement Resource The predicate of the resource in an RDF Statement
rdf:object Statement Resource The object of the resource in an RDF Statement
rdf:value Resource Resource The property used for values
rdf:type Resource Class The resource is an instance of a class

RDF Attributes

Attribute Description
rdf:about Defines the resource being described
rdf:Description Container for the description of a resource
rdf:resource Defines a resource to identify a property
rdf:datatype Defines the data type of an element
rdf:ID Defines the ID of an element
rdf:li Defines a list
rdf:_n Defines a node
rdf:nodeID Defines the ID of an element node
rdf:parseType Defines how an element should be parsed
rdf:RDF The root of an RDF document
xml:base Defines the XML base
xml:lang Defines the language of the element content