XML documents. The proposed method consists of
difference detection, difference extraction and
difference representation; we proposed algorithms
for each process. We have implemented prototype
software and showed it to be effective using special
contents such as stock price and news flash. We also
proposed new XSLT function.
In future work, we will investigate processing
time to generate differential XSLT stylesheet and
continue to work on improving the performance of
our algorithm. Future work includes quantitatively
evaluating the proposed method in the case of
general XML content. We will also confirm the
effectiveness of the proposed XSLT function.
REFERENCES
Bray, T. el al (2000) Extensible Markup Language (XML)
1.0 (Second Edition). W3C Recommendation.
Baker, M. et al (2000) XHTML Basic. W3C
Recommendation.
Mogul, Jeffrey C. et al (1997) Potential benefits of delta-
encoding and data compression for HTTP. Proceeding
of SIGCOMM 97. SIGCOMM 97.
Mogul, Jeffrey C. et al (2002) Delta Encoding in HTTP.
RFC3229. The Internet Engineering Task Force.
Clark, J. (2000) XSL Transformations (XSLT) Version 1.0.
W3C Recommendation.
Le Hors, A. et al (2000) Document Object Model (DOM)
Level 2 Core Specification Version 1.0. W3C
Recommendation.
Clark, J. (1999) XML Path Language (XPath) Version 1.0.
W3C Recommendation.
The GNU Project (2002) Diffutils [Software]. Version
2.8.1. www.gnu.org. Available from:
<http://directory.fsf.org/GNU/diffutils.html>
[Accessed 25 January 2005].
Open Source Technology Group (2004a) diffxml
[software]. Version 0.92A. SourceForge.net. Available
from: <http://diffxml.sourceforge.net/> [Accessed 25
January 2005].
Open Source Technology Group (2004b) SAXON
[software]. version 8.2. SourceForge.net. Available
from: <http://saxon.sourceforge.net/> [Accessed 25
January 2005].
The Apache Software Foundation (2004) xalan-J
[software] version 2.6.0. www.apache.org. Available
from:
<http://www.apache.org/dyn/closer.cgi/xml/xalan-j>
[Accessed 25 January 2005].
La Fontaine, R. (2001) A Delta Format for XML:
Identifying Changes in XML Files and Representing
the Change in XML. XML Europe 2001.
Curbera, F. P. et al (1999) Fast Difference and Update of
XML Documents. XTech'99 held in San Jose.
Ishikawa, N. et al (2002) Automatic Generation of a
Differential XSL Stylesheet From Two XML
Documents. Proceeding of WWW Conference 2002
held in Hawaii. WWW Conference 2002.
Appendix A: XSLT template mapping for
accordance, delete and change node.
Appendix B: XSLT template mapping for addition
Appendix C: XSLT template mapping for addition
<xsl:template match=“XPath of a
pattern node”>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
<Younger brother addition node/>
</xsl:template>
<xsl:template match=“XPath of a
pattern node”>
<xsl:copy/>
<Younger brother addition
node/>
</xsl:template>
Addition
node in
younger
brother
<xsl:template match=“XPath of a
pattern node”>
<Elder brother addition node/>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match=“XPath of a
pattern node”>
<Elder brother addition node/>
<xsl:copy/>
</xsl:template>
Addition
node in
elder
brother
Addition
node in
Child
Same as left template<xsl:template match=“XPath of a
pattern node”>
<xsl:copy>
<Child addition node/>
</xsl:copy>
</xsl:template>
<xsl:template match=“XPath of a
pattern node”>
<Parent addition node>
<xsl:copy/>
</Parent addition node>
</xsl:template>
Mapping to XSLT
(No continuing process to
descendant of pattern)
<xsl:template match=“XPath of its
own position”>
<Parent addition node>
<xsl:copy>
<xsl:apply-template>
</xsl:copy>
</Parent addition node>
</xsl:template>
Addition
node in
Parent
Mapping to XSLT
(Continuing process to
descendant of pattern)
TYPE
<xsl:template match=“XPath of a
pattern node”>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
<Younger brother addition node/>
</xsl:template>
<xsl:template match=“XPath of a
pattern node”>
<xsl:copy/>
<Younger brother addition
node/>
</xsl:template>
Addition
node in
younger
brother
<xsl:template match=“XPath of a
pattern node”>
<Elder brother addition node/>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match=“XPath of a
pattern node”>
<Elder brother addition node/>
<xsl:copy/>
</xsl:template>
Addition
node in
elder
brother
Addition
node in
Child
Same as left template<xsl:template match=“XPath of a
pattern node”>
<xsl:copy>
<Child addition node/>
</xsl:copy>
</xsl:template>
<xsl:template match=“XPath of a
pattern node”>
<Parent addition node>
<xsl:copy/>
</Parent addition node>
</xsl:template>
Mapping to XSLT
(No continuing process to
descendant of pattern)
<xsl:template match=“XPath of its
own position”>
<Parent addition node>
<xsl:copy>
<xsl:apply-template>
</xsl:copy>
</Parent addition node>
</xsl:template>
Addition
node in
Parent
Mapping to XSLT
(Continuing process to
descendant of pattern)
TYPE
<Addition node>
<xsl:apply-template select=“XPath of
lower pattern”/>
</Addition node>
<Addition node/>
Mapping to XSLT
(No continuing process to
descendant of addition node)
Additio
n node
Mapping to XSLT
(Continuing process to descendant
of addition node)
TYPE
<Addition node>
<xsl:apply-template select=“XPath of
lower pattern”/>
</Addition node>
<Addition node/>
Mapping to XSLT
(No continuing process to
descendant of addition node)
Additio
n node
Mapping to XSLT
(Continuing process to descendant
of addition node)
TYPE
<xsl:template match=“XPath of its
own position”>
<Data of Changed node>
<xsl:apply-templates/>
</Data of Changed node>
</xsl:template>
<xsl:template match=“XPath of
its own position”>
<Data of Changed node/>
</xsl:template>
Change
<xsl:template match=“XPath of its
own position”>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match=“XPath of
its own position”>
</xsl:template>
Delete
No template
Mapping to XSLT
(No continuing process to
descendant of pattern)
<xsl:template match=“XPath of its
own position”>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
Accordance
Mapping to XSLT
(Continuing process to
descendant of pattern)
TYPE
<xsl:template match=“XPath of its
own position”>
<Data of Changed node>
<xsl:apply-templates/>
</Data of Changed node>
</xsl:template>
<xsl:template match=“XPath of
its own position”>
<Data of Changed node/>
</xsl:template>
Change
<xsl:template match=“XPath of its
own position”>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match=“XPath of
its own position”>
</xsl:template>
Delete
No template
Mapping to XSLT
(No continuing process to
descendant of pattern)
<xsl:template match=“XPath of its
own position”>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
Accordance
Mapping to XSLT
(Continuing process to
descendant of pattern)
TYPE
WEBIST 2005 - INTERNET COMPUTING
12