Вы находитесь на странице: 1из 4

XML+DTD

<!DOCTYPE TELEFOANE [ <!ELEMENT TELEFOANE (NOKIA+)> <!ELEMENT NOKIA (DENUMIRE, TIP_ECRAN, TIP_BATERIE,MARIME, LANSARE, CAMERA, FUNCTII, STOC, PRET, VALUTA)> <!ELEMENT DENUMIRE (#PCDATA)> <!ELEMENT TIP_ECRAN (#PCDATA)> <!ELEMENT TIP_BATERIE (#PCDATA)> <!ELEMENT MARIME (#PCDATA)> <!ELEMENT LANSARE (#PCDATA)> <!ELEMENT CAMERA (#PCDATA)> <!ELEMENT FUNCTII (#PCDATA)> <!ELEMENT STOC (#PCDATA)> <!ELEMENT PRET (#PCDATA)> <!ELEMENT VALUTA (#PCDATA)> <!ATTLIST VALUTA tip (euro|dolar|lei) #REQUIRED> <!ATTLIST NOKIA cod ID #REQUIRED > <!ENTITY s "In stoc"> ]> //Pentru DTD extern <!DOCTYPE TELEFOANE SYSTEM validare.dtd> <TELEFOANE> <NOKIA cod="_1"> <DENUMIRE>Nokia 100 Black</DENUMIRE> <TIP_ECRAN>Tipul ecranului:TFT</TIP_ECRAN> <TIP_BATERIE>Tipul bateriei:Li-Ion 850 mAh(BL-5CB)</TIP_BATERIE> <MARIME>Marimea in inchi:1.8</MARIME> <LANSARE>Lansat:2011, noiembrie</LANSARE> <CAMERA>Camera:Nu</CAMERA> <FUNCTII>Functii:Lanterna - Organizator</FUNCTII> <STOC>In stoc</STOC> <PRET>Pret:419 lei</PRET> <VALUTA tip="euro"/> </NOKIA> <NOKIA cod="_2"> <DENUMIRE>Nokia 500 Black (Azure/Red)</DENUMIRE> <TIP_ECRAN>Tipul ecranului:TFT touchscreen, 16M culori</TIP_ECRAN> <TIP_BATERIE>Tipul bateriei:Li-Ion 1110 mAh (BL-4U)</TIP_BATERIE> <MARIME>Marimea in inchi:3.2</MARIME> <LANSARE>Lansat:2011,septembrie</LANSARE> <CAMERA>Camera:5 MP,2592x1944 pixeli</CAMERA> <FUNCTII>Functii:Sistem de operare Symbian Anna OS - procesor 1 GHz A</FUNCTII> <STOC>In stoc</STOC> <PRET>Pret:2299 lei</PRET> <VALUTA tip="lei"/> </NOKIA>

XML
<?xml version="1.0"?> < !DOCTYPE registru SYSTEM validare.dtd> <registru xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.w3schools.com" xsi:schemaLocation="http://www.w3schools.com D:\ANIIIU~1\TEHNOL~1\examen\schema.xsd"> <student> <nume>Bou </nume> <prenume>Corina</prenume> <nota disciplina="matematica" credite="4">9</nota> <nota disciplina="informatica" credite="5">10</nota> <nota disciplina="fizica" credite="3">8</nota> <nota_medie calificativ="satisfacator">9</nota_medie> </student> <student> <nume>Tara</nume> <prenume>Nicolae</prenume> <nota disciplina="matematica" credite="4">7</nota> <nota disciplina="informatica" credite="5">9</nota> <nota disciplina="fizica" credite="3">10</nota> <nota_medie calificativ="suficient">8</nota_medie> </student> </registru>

DTD
<!ELEMENT registru (student+)> <!ELEMENT student (nume,prenume,nota+,nota_medie)> <!ELEMENT nume (#PCDATA)> <!ELEMENT prenume (#PCDATA)> <!ELEMENT nota (#PCDATA)> <!ELEMENT nota_medie (#PCDATA)> <!ATTLIST nota disciplina (matematica|informatica|fizica) #REQUIRED credite CDATA #REQUIRED> <!ATTLIST nota_medie calificativ (satisfacator|excelent|suficient|nesatisfacator) #REQUIRED> <!ENTITY c "Popescu">

XSD
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com" xmlns="http://www.w3schools.com" elementFormDefault="qualified"> <xs:element name="registru"> <xs:complexType> <xs:sequence> <xs:element name="student" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="nume" type="caracter"/> <xs:element name="prenume" type="caracter"/> <xs:element name="nota" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="not"> <xs:attribute name="disciplina" type="alege" use="required"/> <xs:attribute name="credite" type="xs:integer" use="required"/>

</xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="nota_medie"> <xs:complexType> <xs:simpleContent> <xs:extension base="media"> <xs:attribute name="calificativ" type="calif" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:simpleType name="caracter"> <xs:restriction base="xs:string"> <!--<xs:pattern value="[A-Z]{1}[a-z]{1,19}"/>--> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="not"> <xs:restriction base="xs:integer"> <xs:minExclusive value="0"/> <xs:maxInclusive value="10"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="alege"> <xs:restriction base="xs:string"> <xs:enumeration value="matematica"/> <xs:enumeration value="informatica"/> <xs:enumeration value="fizica"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="calif"> <xs:restriction base="xs:string"> <xs:enumeration value="satisfacator"/> <xs:enumeration value="suficient"/> <xs:enumeration value="nesatisfacator"/> <xs:enumeration value="excelent"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="media"> <xs:restriction base="xs:decimal"> <xs:fractionDigits value="2"/>

<xs:minInclusive value="1"/> </xs:restriction> </xs:simpleType> </xs:schema>

XSL
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:template match="registru"> <html> <body> <table border="1"> <xsl:for-each select="student"><xsl:if test="nota_medie &gt;5"> <tr><td><xsl:value-of select="nume"/> <xsl:value-of select="prenume"/></td> <td><xsl:value-of select="nota_medie"/></td></tr> </xsl:if></xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

EX2
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:template match="/"> <html> <body> <ol> <xsl:apply-tepmplates/> </ol> </body> </html> </xsl:template> <xsl:template match="nume"> <li><xsl:value-of select="nume"/><xsl:value-of select="prenume"/></li> <ul><xsl:for-each select="nota"> <li><xsl:value-of select="@disciplina"/><xsl:value-of select="."/></li> </xsl:for-each> </ul> </xsl:template> </xsl:stylesheet>

Вам также может понравиться