Some of posts from this blog has been moved to dywicki.pl. You will be automatically redirected to new blog if you would submit comment.
New posts are published on dywicki.pl, this blog contains old content and it is not continued.

Niektóre posty z tego bloga zostały przeniesione do dywicki.pl. Zostaniesz automatycznie przekierowany jeśli bedzięsz chciał dodać komentarz.
Nowe posty sa publikowane na dywicki.pl, ten blog zawiera stare treści i nie jest kontynuowany.

Po prostu. XML

Filed under Ogólne by

Po prostu?Chciałem Was ostrzec przed nabywaniem czy nawet zbliżaniem się do tego tytułu. Książka zaczyna od omówienia XMLa, którego nie czytałem, bo jak XML wygląda to wiem. Pożyczając tą książkę chciałem lepiej poznać DTD oraz XSD. Pomimo szczerych chęci nie udało się.
Autorka tak pokrętnie wyjaśnia wszytko, że nie sposób to zrozumieć. Z wielkimi trudami przyswoiłem wiadomości o DTD, podobnie jak o XSL, ale XSD to męka.. nie wiem, może to zmęczenie po pracy działa na mnie tak otępiająco? Chyba nie, bo komentarze na helionie też nie są zbyt pochlebne. W każdym razie, czekam na kolejną pozycję o XMLu którą, będę miał pożyczoną – mianowicie “XML. Na poważnie”, która zapowiada się świetnie. Jutro to zweryfikuję. Tym czasem powracam do bojów z Propelem i PHPUnit.
// właśnie mam przed sobą XML na poważnie, za gruba to ona nie jest, ale zobaczymy co ciekawego piszą o XMLu :)

Linki do plików:
config.xml
test.dtd
test.xsl


config.xml

<?xml version="1.0"?> <!--  conf for web application --> <config cache="false"> 	<plugins> 		<plugin name="Request1" class="WebRequest1" /> 		<plugin name="Request2" class="WebRequest2" /> 	</plugins> 	<database driver="PDODatabase"> 		<type>PgSQL</type> 		<user>root</user> 		<pass>Splatch22</pass> 		<name>test_</name> 		<host>localhost</host> 		<!-- 		This parameter is optional 		<port>5502</port> 		--> 	</database> 	<modules default="HomePage"> 		<module name="Default" default="Index" /> 		<module name="City" default="UserCites" /> 	</modules> 	<mapping> 		<pattern module="Default">/HomePage</pattern> 		<!-- propozycja --> 		<variable module="Default" equals="home">module</variable> 	</mapping> </config>

test.dtd test.dtd

<!-- Typ BOOL przyjmuje tylko wartosci true/false --> <!ENTITY % BOOL "(true|false)"> <!ELEMENT config (plugins,database,mapping)?> <!ATTLIST config cache %BOOL; #FIXED "true"> <!ELEMENT plugins (plugin*)> <!ELEMENT plugin EMPTY> <!ATTLIST plugin 			name 	CDATA		#REQUIRED 			class 	CDATA		#REQUIRED> <!ELEMENT database (type,user,pass,name,host,port)> <!ATTLIST database 			driver	CDATA #REQUIRED> <!ELEMENT type (#PCDATA)> <!ELEMENT user (#PCDATA)> <!ELEMENT pass (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT host (#PCDATA)> <!ELEMENT port (#PCDATA)> <!ELEMENT mapping (pattern,variable)*> <!ELEMENT pattern (#PCDATA)> <!ATTLIST pattern 			module	CDATA	#REQUIRED 			action	CDATA	#IMPLIED> <!ELEMENT variable (#PCDATA)> <!ATTLIST variable 			equals	CDATA	#REQUIRED 			action	CDATA	#IMPLIED> 

text.xsl

<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 	<xsl:template match="/"> 		<h2>Framework config</h2><hr /> 		Buforowanie: <b> 		<xsl:choose> 				<xsl:when test="config/@cache"> 					<xsl:apply-templates select="config/@cache" /> 				</xsl:when> 				<xsl:otherwise>domyslne - true</xsl:otherwise> 		</xsl:choose> 		</b><br /> 		<h2>Wtyczki:</h2> 		Razem: <xsl:value-of select="count(.//plugins/*)" /> 		<table border="1" width="500px"> 			<tr> 				<th>Nazwa</th> 				<th>Klasa</th> 			</tr> 			<xsl:for-each select=".//plugins/plugin"> 				<tr> 					<td width="50%"><xsl:value-of select="@name" /></td> 					<td><xsl:value-of select="@class" />.php</td> 				</tr> 			</xsl:for-each> 		</table> 		<h2>Moduly</h2> 		Razem: <xsl:value-of select="count(.//modules/*)" />, domyslny <xsl:value-of select=".//modules/@default" /><br /> 		<table border="1" width="500px"> 			<tr> 				<th>Modul</th> 				<th>Domyslna akcja</th> 			</tr> 			<xsl:for-each select=".//modules/module"> 				<tr> 					<td width="50%"><xsl:value-of select="@name" /></td> 					<td><xsl:value-of select="@default" /></td> 				</tr> 			</xsl:for-each> 		</table> 		<h2>Mapowanie</h2> 		Razem <xsl:value-of select="count(.//mapping/*)" /> (wzorce: <xsl:value-of select="count(.//mapping/pattern)" />) 		<table border="1" width="500px"> 			<tr> 				<th>Wzorzec</th> 				<th>Akcja</th> 			</tr> 			<xsl:for-each select=".//mapping/pattern"> 				<tr> 					<td width="50%"><xsl:value-of select="." /></td> 					<td><xsl:value-of select="@module" /></td> 				</tr> 			</xsl:for-each> 		</table> 	</xsl:template> </xsl:stylesheet>

3 responses so far

3 Responses to “Po prostu. XML”

  1. treewood says:

    Dopisz takze komentarz na helionie … by byl przestroga dla wiekszego grona ludzi niz tylko na Twoim blogu

  2. yarpo says:

    No nie wiem, opinie czytelników na helion są niezłe. Dzisiaj gadał z moją wykładowczynią przedmiotu, na którym jest sporo o XMLu i jak się jej spytałem, to stwierdziła, że to dobra pozycja. Godna uwagi.

    Jakie ksiązki o XMLu już przeczytałeś? Jaka jest twoja wiedza? Może po prostu nie trafiłeś z ksiązką, albo była zbyt łatwa, albo zbyt profesjonalna.

  3. Witam serdecznie,
    Przerobiłem “XML na poważnie”, swoje dołożyła praca z XSD w poprzedniej pracy (tu na prawdę pomocne były materiały z Microsoftu).
    Na tamtą chwilę nie dysponowałem częścią tej wiedzy i wydaje mi się, że główną przeszkodą w odbiorze tej pozycji były odnośniki między stronami. Na tą chwilę ciężko mi przytoczyć jakikolwiek przykład, ponieważ jak sugeruje data noty – było to dawno temu.

Leave a Reply