.


:




:

































 

 

 

 


XMLStreamConstants.ENTITY_DECLARATION




:

String getLocalName() ;

String getAttributeValue(NAMESPACE_URI, ATTRIBUTE_NAME) ;

String getText() .

XML- .

<?xml version="1.0" encoding="UTF-8"?>

<products xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation=" products.xsd">

<category name="Audio And Video">

<subcategory name="Audio">

<product>

<producer>Samsung</producer>

<model>NV678</model>

<year>12-12-2006</year>

<color>White</color>

<notAvailable />

</product>

</subcategory>

<subcategory name="Video">

<product>

<producer>Samsung</producer>

<model>VH500</model>

<year>12-12-2004</year>

<color>Black</color>

<cost>200</cost>

</product>

<product>

<producer>Samsung</producer>

<model>VH500</model>

<year>12-12-2004</year>

<color>White</color>

<notAvailable />

</product>

</subcategory>

</category>

<category name="Computers">

<subcategory name="Pocket">

<product>

<producer>HP</producer>

<model>rx371</model>

<year>31-01-2006</year>

<color>Black</color>

<notAvailable />

</product>

</subcategory>

</category>

</products>

XML StAX :

/* # 12: XM-: StAXProductParser.java: ProductParser.java: ParserEnum.java */

Package chapt16;

public enum ParserEnum {

PRODUCTS, CATEGORY, SUBCATEGORY, PRODUCT, PRODUCER, MODEL, YEAR, COLOR, NOTAVAILABLE, COST, NAME

}

package chapt16;

import java.io.InputStream;

 

public abstract class ProductParser {

public abstract void parse(InputStream input);

 

public void writeTitle() {

System. out. println("Products:");

}

public void writeCategoryStart(String name) {

System. out. println("Category: " + name.trim());

}

public void writeCategoryEnd() {

System. out. println();

}

public void writeSubcategoryStart(String name) {

System. out. println("Subcategory: " + name.trim());

}

public void writeSubcategoryEnd() {

System. out. println();

}

public void writeProductStart() {

System. out. println(" Product Start ");

}

public void writeProductEnd() {

System. out. println(" Product End ");

}

public void writeProductFeatureStart(String name) {

switch (ParserEnum. valueOf (name.toUpperCase())) {

case PRODUCER:

System. out. print("Provider: ");

break;

case MODEL:

System. out. print("Model: ");

break;

case YEAR:

System. out. print("Date of issue: ");

break;

case COLOR:

System. out. print("Color: ");

break;

case NOTAVAILABLE:

System. out. print("Not available");

break;

case COST:

System. out. print("Cost: ");

break;

}

}

public void writeProductFeatureEnd() {

System. out. println();

}

 

public void writeText(String text) {

System. out. print(text.trim());

}

}

package chapt16;

import javax.xml.stream.XMLInputFactory;

import javax.xml.stream.XMLStreamConstants;

import javax.xml.stream.XMLStreamException;

import javax.xml.stream.XMLStreamReader;

import java.io.InputStream;

 

public class StAXProductParser extends ProductParser {

//

public void parse(InputStream input) {

XMLInputFactory inputFactory =

XMLInputFactory. newInstance ();

try {

XMLStreamReader reader =

inputFactory.createXMLStreamReader(input);

process(reader);

} catch (XMLStreamException e) {

e.printStackTrace();

}

}

// ,

public void process(XMLStreamReader reader)

throws XMLStreamException {

String name;

 

while (reader.hasNext()) {

// "" ()

int type = reader.next();

 

switch (type) {

case XMLStreamConstants. START_ELEMENT:

name = reader.getLocalName();

 

switch (ParserEnum. valueOf (name.toUpperCase())) {

case PRODUCTS:

writeTitle();

break;

case CATEGORY:

writeCategoryStart(reader.getAttributeValue(null,

ParserEnum. NAME. name().toLowerCase()));

break;

case SUBCATEGORY:

writeSubcategoryStart(reader.getAttributeValue(null,

ParserEnum. NAME. name().toLowerCase()));

break;

case PRODUCT:

writeProductStart();

break;

default:

writeProductFeatureStart(name);

break;

}

break;

 

case XMLStreamConstants. END_ELEMENT:

name = reader.getLocalName();

 

switch (ParserEnum. valueOf (name.toUpperCase())) {

case CATEGORY:

writeCategoryEnd();

break;

case SUBCATEGORY:

writeSubcategoryEnd();

break;

case PRODUCT:

writeProductEnd();

break;

default:

writeProductFeatureEnd();

break;

}

break;

 

case XMLStreamConstants. CHARACTERS:

writeText(reader.getText());

break;

 

default:

break;

}

}

}

}

StAX :

/* # 13: : StreamOutputExample.java*/

package chapt16;

import java.io.FileInputStream;

import java.io.InputStream;

 

public class StreamOutputExample {

public static void main(String[] args) throws Exception {

ProductParser parser = new StAXProductParser();

// xml-

InputStream input =

new FileInputStream("chapt16\\mediatech.xml");

//

parser.parse(input);

}

}

XSL

XML , , . XML-, - . XML- , XML- .

, W3C. CSS (Cascading Stylesheet) XSL (XML Stylesheet Language).

CSS HTML , , , , HTML-.

XSL , CSS, XML- . , XSL, XML-, .

XSL : XSLT (XSL Transformation), XPath XSLFO (XSL Formatting Objects).

XSL Processor XML- , .

XSLT

XML- XML- , XML-.

, XSLT :

XML-;

XML- ;

XML- ;

XML- HTML .

XML-
students.xml, login. country, city, street address telephone address. XSLT . students.xsl, .

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" />

<xsl:template match="/">

<students>

<xsl:apply-templates />

</students>

</xsl:template>

<xsl:template match="student">

<xsl:element name="student">

<xsl:attribute name="faculty">

<xsl:value-of select="@faculty"/>

</xsl:attribute>

<name><xsl:value-of select="name"/></name>

<xsl:element name="address">

<xsl:attribute name="country">

<xsl:value-of select="address/country"/>

</xsl:attribute>

<xsl:attribute name="city">

<xsl:value-of select="address/city"/>

</xsl:attribute>

<xsl:attribute name="street">

<xsl:value-of select="address/street"/>

</xsl:attribute>

<xsl:element name="telephone">

<xsl:attribute name="number">

<xsl:value-of select="telephone"/>

</xsl:attribute>

</xsl:element>

</xsl:element>

</xsl:element>

</xsl:template>

</xsl:stylesheet>

XSL , ATV (attribute template value), . {}

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" />

<xsl:template match="/">

<students>

<xsl:apply-templates />

</students>

</xsl:template>

<xsl:template match="student">

<student faculty={@faculty}">

<name><xsl:value-of select="name"/></name>

<address country={address/country}"

city={address/city}

street={address/street}>

<telephone number="{telephone}"/>

</address>

</student>

</xsl:template>

</xsl:stylesheet>

, , .

/* # 14: XML: SimpleTransform.java */

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerException;

import javax.xml.transform.TransformerFactory;

import javax.xml.transform.stream.StreamResult;

import javax.xml.transform.stream.StreamSource;

 

public class SimpleTransform {

public static void main(String[] args) {

try {

TransformerFactory tf =

TransformerFactory. newInstance ();

 

// XSL-

Transformer transformer =

tf.newTransformer(new StreamSource("students.xsl"));

 

// XML- XML-

transformer.transform(

new StreamSource("students.xml"),

new StreamResult("newstudents.xml"));

 

System. out. print("complete");

} catch (TransformerException e) {

e.printStackTrace();

}

}

}

XML- newstudents.xml :

<?xml version="1.0" encoding="UTF-8"?>

<students>

<student faculty="mmf">

<name>Mitar Alex</name>

<address country="Belarus" city="Minsk"

street="Kalinovsky 45">

<telephone number="3462356"/>

</address>

</student>

<student faculty="mmf">

<name>Pashkun Alex</name>

<address country="Belarus" city="Brest"

street="Knorina 56">

<telephone number="4582356"/>

</address>

</student>

</students>

well-formed XML-. , , .

?

<xsl:output method="xml" indent="yes"/>

, , , XML-.

<xsl:template match="student">

<lastname>

<xsl:apply-templates/>

</lastname>

</xsl:template>

<xsl:template...> . . , student lastname.

:

1) match, , ;

2) , .

, math . . , , math , url, protocol mailto:

<xsl:template match=url[@protocol=mailto]>

, , :

<xsl:template match=chapter[position()=2]>

chapter .

<xsl:apply-templates/> XSL- , . :

<xsl:apply-templates select=child::node() />

XSL- . XML- . ; , . <xsl:apply-templates/>, , .. .

16

XML DTD-. XSD. Java, . Java- XML-. XML- DTD XSD. , XML- , .

.

, , :

Name .

Soil , : , , -.

Origin .

Visual arameters ( ) : , , .

Growing tips ( ) : ( ), ( ), ( ).

Multiplying : , .

Flower.

XML , , 4-5 . XSL HTML, ( ).

.

, , :

Name .

Preciousness .

Origin .

Visual parameters ( ) : (, , ..), (
0-100%), ( 4-15).

Value ( ).

Gem.

XML , , 4-5 . XSL XML, .





:


: 2016-04-03; !; : 440 |


:

:

,
==> ...

994 - | 936 -


© 2015-2024 lektsii.org - -

: 0.125 .