Помогни ни да направим Uroci.net по - богат! Добави урок

Въведение в XML

Stalik   трудност:    видян: 297464

 

Коментари

Когато се пише някакъв код, независимо на какъв език, важно е той да бъде коментиран. Коментарите са части от кода, които се игнорират от процесора и служат единсветно за улеснение на хората - те прявят кода по-разбираем и лесен за обработване. Освен това понякога са полезни за откриване на грешки - просто коментирате части от кода, докато откриете проблемната част. XML запазва стила на HTML за коментарите: началото на коментар се декларира с <!-- , а неговия край с -->

И за да завършим разглеждането на DTD нека се върнем към външните DTD файлове. След като знаете как да напишете една дефиниция и как да използвате външен .dtd файл като такава, остава да научите как да напишете самия .dtd файл. В него трябва да включите само таговете на самата дефиниция, без блока <!DOCTYPE [ ... ]>. И, разбира се, документа трябва да започва с <?xml version="1.0"?>

DTD е стария стандарт за дефиниране на XML документи, все по-масово навлиза т.нар. Shema.
 

Няколко думи за XHTML

Все повече навлиза XHTML като заместител на HTML. За разлика от HTML, той има строги изисквания към синтаксиса. Ако не затворите някой таг докуемнта няма да е валиден и няма да се зарежда от браузърите Това означава, че таговете <img>img> ще изглеждат така:
 
Код:
<img src="someimage.gif" />



На всеки таг съответства затварящ таг. Тага за нов ред е


XML в Web - как да превърнете XML документа в добре изглеждащ HTML


Както вече неведнъж отбелязахме, XML описва данните, а тяхното представяне на екрана е работа на програмата. Самия Internet Explorer има вграден XML процесор, който проверява дали данните са валидни и ако са, извежда ги в дървовидна структура. Това само по себе си рядко е полезно. В Web често се използва стилова дефиниция за определянето на вида на всеки един таг. Това се осъществява чрез един от XML езиците - XSL (Extensible Stylesheet Language). Макар XSL да прилича на CSS по възможността да се определи вида на всеки един таг, той е значително по-мощен. На първо място, XSL може да направи разлика между два еднакви тага, които да дъщерни елементи на различни тагове. Освен това с XSL могат да се проверяват стойностите на атрибутите и да се форматират по различен начин тагове, в зависимост от даден атрибут. XSL не просто дава стиловата дефиниция на даден таг; той определя HTML код, който да се използва за всеки един таг, като предоставя методи за лесно и бързо обработване на големи XML докурако това се осъществява чрез поредица служебни тагове, предоставяни от XSL. В основата си, синтаксиса му е същия, както на XML.

XSL документа дефинира набор стилове. Той се състои от един или повече шаблона. Тези шаблони се прилагат върху елементи, които съвпадат с някакъв образец - например тагове <book>, които са дъщерни на таг . Един шаблон се дефинира чрез тага <xsl:template>. Този шаблон трябва да дефинира как да се извежда информацията, която покрива някакви критерии. Съответно шаблона се завършва с </xsl:template> Между тези два тага се слагат различни XSL тагове, които извличат информация за XML документа. Тези тагове разглеждам по-подробно по-нататък.

Характерното е, че между два тага, идентифициращи определено XML съдържание се слага HTML код, дефиниращ как да бъдат изведени тези тагове.

Един от основните тагове е който определя някакъв основен критерий и прилага форматирането към всеки таг, отговарящ на този критерий. Критерия се определя от стойността на свойството for, което от своя страна следва дефиницията на т.нар. XPath. Xpath дефинира набор правила за откриване на един или повече елемента в XML документа. Например декларацията type/books означава всички тагове <books>, които са дъщерни на тага <type>. * означава всеки таг, | идентифицира алтернативи, а // означава всеки път (т.е. //books означава всеки таг <books> независимо от родителските му тагове, техните родителски тагове и т.н.

Друг важен таг е <xsl:value=of/> който също има един аргумент for. Този атрибут определя дъщерен таг, а в резултат се връща текста, съдържащ се между отварящия и затварящия таг, определени от атрибут. Ако вземем отново XML документа с книгите и искаме да изведем автора на всяка книга в получерен шрифт, а това за какво се отнася тя с нормален, на два съседни реда, като оставяме един празен между всяка двойка, то можем да напишем следния код:

Код:
<?xml version="1.0"?>
<xsl:template>
<HTML>
<BODY>
<xsl:repeat for="//style/name">
<P><B><xsl:value-of select="author"/></B>
<BR><xsl:value-of select="subject"/>
</xsl:repeat>
</BODY>
</HTML>
</xsl:teplate>



Забележка: ако тествате някой .xsl код с браузър, то той няма да доведе до очаквания резлутат. Причината е в липсата на вградем процесор. Internet Explorer съдържа вградена контрола, която можете да използвате чрез JavaScript. За да изведете XML документ, форматиран от XSL, трябва да създадете един файл с XML докуемта, един с XSL документа и един HTML файл, съдтржащ следния код (тук съм приел, че документите се казват съответно xmldocument.xml и xsldocument.xsl):

Код:
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="onload">
var source = new ActiveXObject("Microsoft.xmldom");
source.load("xmldocument.xml");

var style = new ActiveXObject("Microsoft.xmldom");
style.load("xsldocument.xsl");
document.all.item("xslContainer").innerHTML =
source.transformNode(style.documentElement);
</SCRIPT>
</HEAD>
<BODY>
<DIV ID="xslContainer"></DIV>
</BODY>
</HTML>



XSL обаче може да дефинира различни стилове за различните тагове. Това е особено полезно при големи XML документи. За целта се използва атрибута match на тага <xsl:template>, който определя условията (по същия начин, по който го прави и атрибута for на тага xml:repeat), на които трябва да отговаря един таг за да бъде приложен даден стил. И тъй като ще използваме повече от един таг <xsl:template> а XML разрешава само един първичен таг (корен на структурата или още root), то първия таг вече няма да е <xsl:template>, а <xsl:stylesheet>
 


Страници: «1 2 3 4 5 6 »

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com