Recent Changes - Search:

About

Users

Internal

Other Info (External)

edit SideBar

Tutorials1

Main.Tutorials1 History

Hide minor edits - Show changes to output

Changed lines 295-296 from:
<?xml version="1.0" encoding="UTF-8"?><temporalRoot xmlns:tv="http://www.cs.arizona.edu/tau/TVSchema" begin="2002-06-21" end="2002-06-23">
to:
<?xml version="1.0" encoding="UTF-8"?>
<temporalRoot xmlns:tv="http://www.cs.arizona.edu/tau/TVSchema" begin="2002-06-21" end="2002-06-23">
Changed line 298 from:
<temporalSchema schemaLocation="./myTempSchema.xml"/>
to:
<temporalSchema schemaLocation="./myTempSchema.xml"/>
Changed lines 301-315 from:
<personData>
<personID>67</personID>
<firstName>Alex</firstName>
<salary_RepItem isItem="y" originalElement="salary">
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-21" end="2002-06-22"/>
<salary>45000</salary>
</salary_Version>
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-22" end="2002-06-23"/>
<salary>51000</salary>
</salary_Version>
</salary_RepItem>
</personData>
</person>
to:
<personData>
<personID>67</personID>
<firstName>Alex</firstName>
<salary_RepItem isItem="y" originalElement="salary">
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-21" end="2002-06-22"/>
<salary>45000</salary>
</salary_Version>
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-22" end="2002-06-23"/>
<salary>51000</salary>
</salary_Version>
</salary_RepItem>
</personData>
</person>
Changed line 152 from:
* Let's create the "annotation" - which is an xml document describing which elements can change over time (in our case - salary) and where in the file a timestamp can be placed. Call the file "Annotations.xml".
to:
* Let's create the "annotation" - which is an xml document describing which elements can change over time (logical) and where in the file a timestamp can be placed (physical). Call the file "Annotations.xml".
June 15, 2009, at 01:15 PM by Alex - Changed to new format
Changed line 15 from:
The tutorial consists of creating 7 documents by hand, running the tool, and viewing the output.
to:
The tutorial consists of creating 6 documents by hand, running the tool, and viewing the output.
Changed lines 26-30 from:
** ''TBSchema.xsd'' - Used to validate the temporal bundle document that we are going to create.
** ''TXSchema.xsd'' - Used to validate the temporal annotation document that we are going to create.
** ''PXSchema.xsd'' - Used to validate the physical annotation document that we are going to create.
** ''ConfigSchema.xsd'' - Used to validate the config document that we are going to create.
* The @@squash@@ runscript that takes a "config"
file as input (described later).
to:
** ''TDSchema.xsd'' - Used to validate the temporal document that we are going to create.
** ''TSSchema.xsd'' - Used to validate the temporal schema document that we are going to create.
** ''ASchema.xsd'' - Used to validate the annotation document that we are going to create.
* The @@squash@@ runscript that takes a temporal document file as input (described later).
Changed line 152 from:
* Let's create the "temporal annotation" - which is an xml document describing which element can change over time (in our case - salary). Call the file "myTemp_Anno.xml".
to:
* Let's create the "annotation" - which is an xml document describing which elements can change over time (in our case - salary) and where in the file a timestamp can be placed. Call the file "Annotations.xml".
Changed line 154 from:
'''myTemp_Anno.xml '''
to:
'''Annotations.xml '''
Changed lines 156-169 from:
<?xml version="1.0" encoding="UTF-8"?>
<temporalAnnotations xmlns="http://www.cs.arizona.edu/tau/tauXSchema/TXSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cs.arizona.edu/tau/tauXSchema/TXSchema
../../../etc/TXSchema.xsd">

<item target="salary">
<transactionTime kind="state" content="varying" existence="constant"/>
<itemIdentifier name="@text" timeDimension="transactionTime">
<field path="/@text"/>
</itemIdentifier>
</item>

</temporalAnnotations>
to:
<?xml version="1.0" encoding="utf-8"?>
<annotationSet xmlns="http://www.cs.arizona.edu/tau/ASchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cs.arizona.edu/tau/ASchema
../../../etc/ASchema.xsd">

<logical>
<item
target="salary">
<transactionTime kind="state" content="varying" existence="constant" />
<itemIdentifier name="@text" timeDimension="transactionTime">
<field path="/@text"/>
</itemIdentifier>
</item>
</logical>
<physical>
<default>
<format plugin="XMLSchema" granularity="days"/>
</default>
<stamp target="salary">
<stampKind timeDimension="transactionTime" stampBounds="extent" />
</stamp>
</physical>
</annotationSet
>
Changed line 182 from:
After the file is created, it should validate against the TXSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
to:
After the file is created, it should validate against the ASchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
Changed line 184 from:
xmllint --schema ../../../etc/TXSchema.xsd myTemp_Anno.xml
to:
xmllint --schema ../../../etc/ASchema.xsd Annotations.xml
Changed line 198 from:
* Let's create the "physical annotation" - which is an xml document describing where in the file a timestamp can be placed. Call the file "myPhy_Anno.xml".
to:
* Let's create the "temporal schema" - which is an xml document that simply references the Snapshot Schema and Annotation documents we just created. Call the file "myTempSchema.xml".
Changed line 200 from:
'''myPhy_Anno.xml '''
to:
'''myTempSchema.xml '''
Changed lines 202-215 from:
<?xml version="1.0" encoding="UTF-8"?>
<physicalAnnotations xmlns="http://www.cs.arizona.edu/tau/tauXSchema/PXSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cs.arizona.edu/tau/tauXSchema/PXSchema
../../../etc/PXSchema.xsd">
<default>
<format plugin="XMLSchema" granularity="days"/>
</default>

<stamp target="salary">
<stampKind timeDimension="transactionTime" stampBounds="extent"/>
</stamp>

</physicalAnnotations>
to:
<?xml version="1.0" encoding="utf-8"?>
<temporalSchema xmlns="http://www.cs.arizona.edu/tau/TSSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cs.arizona.edu/tau/TSSchema
../../../etc/TSSchema.xsd">
<conventionalSchema>
<include schemaLocation="mySnapshotSchema.xsd"/>
<
/conventionalSchema>
<annotationSet>
<include location="Annotations.xml"/>
</annotationSet>

<
/temporalSchema>
Deleted line 216:
Changed line 218 from:
After the file is created, it should validate against the PXSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
to:
After the file is created, it should validate against the TSSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
Changed line 220 from:
xmllint --schema ../../../etc/PXSchema.xsd myPhy_Anno.xml
to:
xmllint --schema ../../../etc/TSSchema.xsd myTempSchema.xml
Changed line 231 from:
* Let's create the "bundle document" - which is an xml document that simply references the Snapshot Schema, Temporal Annotation, and Physical Annotation documents we just created. Call the file "myBundle.xml".
to:
* Let's create the "temporal document" - which is an xml document that simply references the temporal schema and Snapshot XML files that we've created. This document is the actual input to Squash. Call the file "temporalSalary.xml".
Changed line 233 from:
'''myBundle.xml '''
to:
'''temporalSalary.xml '''
Changed lines 235-247 from:
<?xml version="1.0" encoding="UTF-8"?>
<temporalBundle xmlns="http://www.cs.arizona.edu/tau/tauXSchema/TBSchema"
xmlns:tv="http://www.cs.arizona.edu/tau/tauXSchema/TVSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<format plugin="XMLSchema" granularity="date"/>
<bundleSequence defaultTemporalAnnotation="defaultTA.xml"
defaultPhysicalAnnotation="defaultPA.xml">
<schemaAnnotation snapshotSchema="mySnapshotSchema.xsd"
temporalAnnotation="myTemp_Anno.xml"
physicalAnnotation="myPhy_Anno.xml"
>
</schemaAnnotation>
</bundleSequence>
</temporalBundle>
to:
<?xml version="1.0" encoding="utf-8"?>
<temporalRoot xmlns="http://www.cs.arizona.edu/tau/TDSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cs.arizona.edu/tau/TDSchema
../../../etc/TDSchema.xsd">
<temporalSchemaSet>
<temporalSchema schemaLocation="./myTempSchema.xml"/>
</temporalSchemaSet>

<sliceSequence>
<slice location="./salary_version1.xml" begin="2002-06-21" end="2002-06-22"/>
<slice location="./salary_version2.xml" begin="2002-06-22" end="2002-06-23"/>
</sliceSequence>

</temporalRoot>
Added line 252:
Changed line 254 from:
After the file is created, it should validate against the TBSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
to:
After the file is created, it should validate against the TDSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
Changed line 256 from:
xmllint --schema ../../../etc/TBSchema.xsd myBundle.xml
to:
xmllint --schema ../../../etc/TDSchema.xsd temporalSalary.xml
Deleted lines 265-266:

* Let's create the "config document" - which is an xml document that simply references the Bundle document and Snapshot XML files that we've created. This config document is the actual input to Squash. Call the file "config.xml".
Changed lines 267-271 from:
'''config.xml '''
to:
\\
\\

!! Running Squash
Assuming the installation is complete and your environment is setup correctly, running squash is easy:
Changed lines 273-279 from:
<?xml version="1.0"?>
<config bundle="./myBundle.xml"
xmlns="http://www.cs.arizona.edu/tau/tauXSchema/ConfigSchema">

<snapshot beginDate="2008-06-21" endDate="2002-06-22" file="salary_version1.xml"/>
<snapshot beginDate="2002-06-22" endDate="2002-06-23" file="salary_version2.xml"/>
</config>
to:
$ squash temporalSalary.xml
Deleted line 274:
Changed lines 276-287 from:
After the file is created, it should validate against the ConfigSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
%box% [@
xmllint --schema
../../../etc/ConfigSchema.xsd config.xml
@]






to:
You may see a few warning messages or other debug output from ##XSchema, but unless you see a stack trace being dumped to stderr, squash has completed succesfully.
Changed lines 281-282 from:
!! Running Squash
Assuming the installation
is complete and your environment is setup correctly, running squash is easy:
to:






!! Viewing Output
The output of squash
is "temporalSalary_squashed.xml", which is another temporal document that summaries all the versions of the "Non-Temporal" XML documents. The file should look something like:

\\
'''temporalSalary_squashed.xml'''
Changed lines 295-315 from:
$ squash config.xml
to:
<?xml version="1.0" encoding="UTF-8"?><temporalRoot xmlns:tv="http://www.cs.arizona.edu/tau/TVSchema" begin="2002-06-21" end="2002-06-23">
<temporalSchemaSet>
<temporalSchema schemaLocation="./myTempSchema.xml"/>
</temporalSchemaSet>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<personData>
<personID>67</personID>
<firstName>Alex</firstName>
<salary_RepItem isItem="y" originalElement="salary">
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-21" end="2002-06-22"/>
<salary>45000</salary>
</salary_Version>
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-22" end="2002-06-23"/>
<salary>51000</salary>
</salary_Version>
</salary_RepItem>
</personData>
</person>
</temporalRoot>
Added line 317:
Deleted line 318:
You may see a few warning messages or other debug output from ##XSchema, but unless you see a stack trace being dumped to stderr, squash has completed succesfully.
Added line 320:
This file is can now be used as input into TemporalValidator. See the [[Main/Tutorials | tutorials ]] page for a list of tutorials that use Temporal Validator.
Changed lines 323-333 from:








!! Viewing Output
The output of squash is "squashed.xml", which is a file that summaries all the versions of the "Non-Temporal" XML documents
. The file should look something like:
to:
The above process can now be used for more temporal documents (i.e. more versions of ''salaray_....xml'').
Deleted lines 327-350:
'''squashed.xml'''

%box% [@
<?xml version="1.0" encoding="UTF-8"?>
<tv_root xmlns:tv="http://www.cs.arizona.edu/tau/TVSchema" begin="2002-06-21" end="2002-06-23">
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<personData>
<personID>67</personID>
<firstName>Steve</firstName>
<salary_RepItem isItem="y" originalElement="salary">
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-21" end="2002-06-22"/>
<salary>45000</salary>
</salary_Version>
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-22" end="2002-06-23"/>
<salary>51000</salary>
</salary_Version>
</salary_RepItem>
</personData>
</person>
</tv_root>
@]
Deleted lines 328-337:
\\
This file is can now be used as input into TemporalValidator. See the [[Main/Tutorials | tutorials ]] page for a list of tutorials that use Temporal Validator.
\\
\\
The above process can now be used for more temporal documents (i.e. more versions of ''salaray_....xml'').



\\
\\
June 02, 2009, at 03:06 PM by 150.135.1.110 -
Changed line 115 from:
'''salaray_version2.xml'''
to:
'''salary_version2.xml'''
May 26, 2009, at 03:57 PM by Alex Henniges -
Changed lines 321-322 from:
</salary_Version>
<salary_Version>
to:
</salary_Version>
<salary_Version>
Changed line 325 from:
</salary_Version>
to:
</salary_Version>
May 26, 2009, at 03:06 PM by Alex Henniges -
Changed lines 311-312 from:
<?xml version="1.0" encoding="UTF-8"?><tv_root xmlns:tv="http://www.cs.arizona.edu/tau/TVSchema" begin="2002-06-21" end="2002-06-23">
to:
<?xml version="1.0" encoding="UTF-8"?>
<tv_root xmlns:tv="http://www.cs.arizona.edu/tau/TVSchema" begin="2002-06-21" end="2002-06-23">
Changed line 316 from:
<firstName>Alex</firstName>
to:
<firstName>Steve</firstName>
Changed lines 318-328 from:
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-21" end="2002-06-22"/>
<salary>45000</salary>
</salary_Version>
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-22" end="2002-06-23"/>
<salary>51000</salary>
</salary_Version>
</salary_RepItem>
</personData>
</person>
to:
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-21" end="2002-06-22"/>
<salary>45000</salary>
</salary_Version>
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-22" end="2002-06-23"/>
<salary>51000</salary>
</salary_Version>
</salary_RepItem>
</personData>
</person>
May 26, 2009, at 03:03 PM by Alex Henniges - Update tutorial, now without paths in Temporal and Physical annotations.
Changed line 163 from:
<item target="/person/personData/">
to:
<item target="salary">
Changed lines 165-166 from:
<itemIdentifier name="personID" timeDimension="transactionTime">
<field path="./@personID"/>
to:
<itemIdentifier name="@text" timeDimension="transactionTime">
<field path="/@text"/>
Changed line 203 from:
<stamp target="/person/personData/salary">
to:
<stamp target="salary">
Changed lines 305-306 from:
The output of squash is the "Temporal Data", which is a file that summaries all the versions of the "Non-Temporal" XML documents. The Temporal Data file will be located in files named @@./TempData{1, 2, 3}.xml @@ and should look something like:
to:
The output of squash is "squashed.xml", which is a file that summaries all the versions of the "Non-Temporal" XML documents. The file should look something like:
Changed lines 308-309 from:
'''TempData1.xml'''
to:
'''squashed.xml'''
Changed lines 311-344 from:
<?xml version="1.0" encoding="UTF-8"?>

<tv_root begin="2008-06-21"
end="2002-06-23"
xmlns:tv="http://www.cs.arizona.edu/tau/TVSchema">

<person_RepItem isItem="y" originalElement="person">

<person_Version>
<tv:timestamp_TransExtent begin="2008-06-21"
end="2002-06-22"/>
<person>
<personData>
<personID>67</personID>
<firstName>Steve</firstName>
<salary>45000</salary>
</personData>
</person>
</person_Version>

<person_Version>
<tv:timestamp_TransExtent begin="2002-06-22"
end="2002-06-23"/>
<person>
<personData>
<personID>67</personID>
<firstName>Steve</firstName>
<salary>51000</salary>
</personData>
</person>
</person_Version>

</person_RepItem>
to:
<?xml version="1.0" encoding="UTF-8"?><tv_root xmlns:tv="http://www.cs.arizona.edu/tau/TVSchema" begin="2002-06-21" end="2002-06-23">
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<personData>
<personID>67</personID>
<firstName>Alex</firstName>
<salary_RepItem isItem="y" originalElement="salary">
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-21" end="2002-06-22"/>
<salary>45000</salary>
</salary_Version>
<salary_Version>
<tv:timestamp_TransExtent begin="2002-06-22" end="2002-06-23"/>
<salary>51000</salary>
</salary_Version>
</salary_RepItem>
</personData>
</person>
April 19, 2009, at 01:33 PM by 68.107.136.111 -
Changed line 9 from:
We'll also assume that you will be working out of the default ##XSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to @@/home/sthomas/@@...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my machine)
to:
We'll also assume that you will be working out of the default ##XSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to @@/home/sthomas/@@...) for convenience. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my machine.)
April 19, 2009, at 01:32 PM by 68.107.136.111 -
Changed line 9 from:
We'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to @@/home/sthomas/@@...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my MacBook Pro.
to:
We'll also assume that you will be working out of the default ##XSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to @@/home/sthomas/@@...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my machine)
Deleted lines 356-360:



Changed line 359 from:
[[Main/Users | Back to Users page.]]
to:
[[Main/Tutorials | Back to Tutorials index.]]
Changed lines 305-306 from:
The output of squash is the "Temporal Data", which is a file that summaries all the versions of the "Non-Temporal" XML documents. The Temporal Data file will be located in @@./TempData{1, 2, 3}.xml @@ and should look something like:
to:
The output of squash is the "Temporal Data", which is a file that summaries all the versions of the "Non-Temporal" XML documents. The Temporal Data file will be located in files named @@./TempData{1, 2, 3}.xml @@ and should look something like:
Added line 309:
Added line 306:
\\
Changed line 306 from:
''TempData1.xml'''
to:
'''TempData1.xml'''
Changed line 347 from:
This file is can now be used as input into TemporalValidator. See the [[Main/Tuorials | tutorials ]] page for a list of tutorials that use Temporal Validator.
to:
This file is can now be used as input into TemporalValidator. See the [[Main/Tutorials | tutorials ]] page for a list of tutorials that use Temporal Validator.
Changed lines 305-306 from:
The output of squash is the "Temporal Data", which is a file that summaries all the versions of the "Non-Temporal" XML documents. The Temporal Data file will be located in @@$TXSchema/src/scratch/testing/testcase_tv_final1.xml @@ and should look something like:
'''testcase_tv_final1.xml'''
to:
The output of squash is the "Temporal Data", which is a file that summaries all the versions of the "Non-Temporal" XML documents. The Temporal Data file will be located in @@./TempData{1, 2, 3}.xml @@ and should look something like:
''TempData1.xml'''
Changed lines 30-31 from:
to:
* The @@squash@@ runscript that takes a "config" file as input (described later).
* A "properties.txt" file (located in the @@$TXSCHEMA/etc@@ directory) that holds system wide preferences. Open the file and make sure everything looks correct (i.e., full paths to files are correct).
Changed line 287 from:
Assuming the installation is correct and your environment is setup correctly, running squash is easy:
to:
Assuming the installation is complete and your environment is setup correctly, running squash is easy:
Deleted lines 342-350:







Added lines 345-358:
This file is can now be used as input into TemporalValidator. See the [[Main/Tuorials | tutorials ]] page for a list of tutorials that use Temporal Validator.
\\
\\
The above process can now be used for more temporal documents (i.e. more versions of ''salaray_....xml'').








\\
\\
Changed line 9 from:
We'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to @@/home/sthomas/@@...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my MacBook Pro.
to:
We'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to @@/home/sthomas/@@...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my MacBook Pro.
Added lines 295-301:





Changed lines 306-319 from:
<?xml version="1.0" encoding="UTF-8"?><tv_root begin="2008-06-21" end="2002-06-23" xmlns:tv="http://www.
cs.arizona.edu/tau/TVSchema"><person_RepItem isItem="y" originalElement="person"><person_Version><tv:timestamp_TransExtent begin="2008-06-21" end="2002-06-22"/><person>
<personData>
<personID>67</personID>
<firstName>Steve</firstName>
<salary>45000</salary>
</personData>
</person></person_Version><person_Version><tv:timestamp_TransExtent begin="2002-06-22" end="2002-06-23"/><person>
<personData>
<personID>67</personID>
<firstName>Steve</firstName>
<salary>51000</salary>
</personData>
</person></person_Version></person_RepItem></tv_root>
to:
<?xml version="1.0" encoding="UTF-8"?>

<tv_root begin="2008-06-21"
end="2002-06-23"
xmlns:tv="http://www.cs.arizona.edu/tau/TVSchema">

<person_RepItem isItem="y" originalElement="person">

<person_Version>
<tv:timestamp_TransExtent begin="2008-06-21"
end="2002-06-22"/>
<person>
<personData>
<personID>67</personID>
<firstName>Steve</firstName>
<salary>45000</salary>
</personData>
</person>
</person_Version>

<person_Version>
<tv:timestamp_TransExtent begin="2002-06-22"
end="2002-06-23"/>
<person>
<personData>
<personID>67</personID>
<firstName>Steve</firstName>
<salary>51000</salary>
</personData>
</person>
</person_Version>

</person_RepItem>

</tv_root>
Changed lines 343-347 from:
Conceptually, we will have a
%box% [@
$ cd myTestDir
@]
to:






Changed line 290 from:
You may see a few warning messages or other debug output from ##XSchema, but
to:
You may see a few warning messages or other debug output from ##XSchema, but unless you see a stack trace being dumped to stderr, squash has completed succesfully.
Changed lines 295-298 from:
!! Viewing output


Conceptually, we will have a
to:
!! Viewing Output
The
output of squash is the "Temporal Data", which is a file that summaries all the versions of the "Non-Temporal" XML documents. The Temporal Data file will be located in @@$TXSchema/src/scratch/testing/testcase_tv_final1.xml @@ and should look something like:
'''testcase_tv_final1.xml'''
Changed lines 299-312 from:
$ cd myTestDir
to:
<?xml version="1.0" encoding="UTF-8"?><tv_root begin="2008-06-21" end="2002-06-23" xmlns:tv="http://www.
cs.arizona.edu/tau/TVSchema"><person_RepItem isItem="y" originalElement="person"><person_Version><tv:timestamp_TransExtent begin="2008-06-21" end="2002-06-22"/><person>
<personData>
<personID>67</personID>
<firstName>Steve</firstName>
<salary>45000</salary>
</personData>
</person></person_Version><person_Version><tv:timestamp_TransExtent begin="2002-06-22" end="2002-06-23"/><person>
<personData>
<personID>67</personID>
<firstName>Steve</firstName>
<salary>51000</salary>
</personData>
</person></person_Version></person_RepItem></tv_root>
Added lines 315-319:
Conceptually, we will have a
%box% [@
$ cd myTestDir
@]
Changed lines 155-168 from:
to:
<?xml version="1.0" encoding="UTF-8"?>
<temporalAnnotations xmlns="http://www.cs.arizona.edu/tau/tauXSchema/TXSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cs.arizona.edu/tau/tauXSchema/TXSchema
../../../etc/TXSchema.xsd">

<item target="/person/personData/">
<transactionTime kind="state" content="varying" existence="constant"/>
<itemIdentifier name="personID" timeDimension="transactionTime">
<field path="./@personID"/>
</itemIdentifier>
</item>

</temporalAnnotations>
Changed lines 192-205 from:
to:
<?xml version="1.0" encoding="UTF-8"?>
<physicalAnnotations xmlns="http://www.cs.arizona.edu/tau/tauXSchema/PXSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.cs.arizona.edu/tau/tauXSchema/PXSchema
../../../etc/PXSchema.xsd">
<default>
<format plugin="XMLSchema" granularity="days"/>
</default>

<stamp target="/person/personData/salary">
<stampKind timeDimension="transactionTime" stampBounds="extent"/>
</stamp>

</physicalAnnotations>
Changed lines 226-238 from:
to:
<?xml version="1.0" encoding="UTF-8"?>
<temporalBundle xmlns="http://www.cs.arizona.edu/tau/tauXSchema/TBSchema"
xmlns:tv="http://www.cs.arizona.edu/tau/tauXSchema/TVSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<format plugin="XMLSchema" granularity="date"/>
<bundleSequence defaultTemporalAnnotation="defaultTA.xml"
defaultPhysicalAnnotation="defaultPA.xml">
<schemaAnnotation snapshotSchema="mySnapshotSchema.xsd"
temporalAnnotation="myTemp_Anno.xml"
physicalAnnotation="myPhy_Anno.xml">
</schemaAnnotation>
</bundleSequence>
</temporalBundle>
Changed lines 29-30 from:
to:
** ''ConfigSchema.xsd'' - Used to validate the config document that we are going to create.
Added line 81:
<xsd:element name="personID" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
Added line 106:
<personID>67</personID>
Added line 119:
<personID>67</personID>
Changed lines 220-226 from:
to:
<?xml version="1.0"?>
<config bundle="./myBundle.xml"
xmlns="http://www.cs.arizona.edu/tau/tauXSchema/ConfigSchema">

<snapshot beginDate="2008-06-21" endDate="2002-06-22" file="salary_version1.xml"/>
<snapshot beginDate="2002-06-22" endDate="2002-06-23" file="salary_version2.xml"/>
</config>
Deleted lines 228-232:



\
Added lines 230-241:
After the file is created, it should validate against the ConfigSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
%box% [@
xmllint --schema ../../../etc/ConfigSchema.xsd config.xml
@]






Deleted lines 243-245:

!! Running Squash
Added lines 245-250:

!! Running Squash
Assuming the installation is correct and your environment is setup correctly, running squash is easy:
%box% [@
$ squash config.xml
@]
Added line 252:
You may see a few warning messages or other debug output from ##XSchema, but
Changed lines 254-256 from:
to:
\\
\\
Deleted lines 153-159:






* Let's create the "physical annotation" - which is an xml document describing where in the file a timestamp can be placed. Call the file "myPhy_Anno.xml".
Changed line 155 from:
'''myPhy_Anno.xml '''
to:
After the file is created, it should validate against the TXSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
Changed line 157 from:
to:
xmllint --schema ../../../etc/TXSchema.xsd myTemp_Anno.xml
Changed lines 168-171 from:
* Let's create the "bundle document" - which is an xml document that simply references the Snapshot Schema, Temporal Annotation, and Physical Annotation documents we just created. Call the file "myBundle.xml".
to:


* Let's create the "physical annotation" - which is an xml document describing where in the file a timestamp can be placed. Call the file "myPhy_Anno.xml".
Changed line 173 from:
'''myBundle.xml '''
to:
'''myPhy_Anno.xml '''
Deleted lines 177-186:









* Let's create the "config document" - which is an xml document that simply references the Bundle document and Snapshot XML files that we've created. This config document is the actual input to Squash. Call the file "config.xml".
Changed line 179 from:
'''config.xml '''
to:
After the file is created, it should validate against the PXSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
Changed line 181 from:
to:
xmllint --schema ../../../etc/PXSchema.xsd myPhy_Anno.xml
Changed lines 187-188 from:
\
to:




* Let's create the "bundle document" - which is an xml document that simply references the Snapshot Schema, Temporal Annotation, and Physical Annotation documents we just created. Call the file "myBundle.xml".
Added lines 194-197:
'''myBundle.xml '''
%box% [@

@]
Changed lines 199-210 from:
\\

!! Running Squash

\\
\\
\\

!! Viewing output


Conceptually
, we will have a
to:
After the file is created, it should validate against the TBSchema.xsd document that comes standard with ##XSchema. Let's check to make sure.
Changed line 201 from:
$ cd myTestDir
to:
xmllint --schema ../../../etc/TBSchema.xsd myBundle.xml
Added lines 204-212:








* Let's create the "config document" - which is an xml document that simply references the Bundle document and Snapshot XML files that we've created. This config document is the actual input to Squash. Call the file "config.xml".
Added lines 214-223:
'''config.xml '''
%box% [@

@]




\
Added lines 225-243:
\\
\\

!! Running Squash

\\
\\
\\

!! Viewing output


Conceptually, we will have a
%box% [@
$ cd myTestDir
@]

\\
\\
Deleted lines 22-23:
\\
\\
Added line 24:
Added line 33:
Changed lines 201-207 from:



to:
\
Deleted lines 204-206:

Added lines 206-208:

!! Running Squash
Deleted lines 210-211:
!! Running Squash
Changed lines 212-213 from:
\\
\\
to:
Changed lines 23-26 from:

to:
\\
\\
!!! What ##XMLSchema has already given us
* A set of Schema documents located in the @@$TXSCHEMA/etc@@ directory.
** ''TBSchema.xsd'' - Used to validate the temporal bundle document that we are going to create.
** ''TXSchema.xsd'' - Used to validate the temporal annotation document that we are going to create.
** ''PXSchema.xsd'' - Used to validate the physical annotation document that we are going to create.


\\
\\
Changed lines 208-211 from:
!!! What ##XMLSchema has already given us
to:
\\
\\



\\
\\
\\
Changed lines 218-220 from:
to:
\\
\\
\\
Changed lines 15-16 from:
to:
The tutorial consists of creating 7 documents by hand, running the tool, and viewing the output.
\\
\\
Changed lines 152-161 from:
!!! What ##XMLSchema has already given us


!! Running Squash


!! Viewing output


Conceptually, we will have a
to:
* Let's create the "physical annotation" - which is an xml document describing where in the file a timestamp can be placed. Call the file "myPhy_Anno.xml".
\\
'''myPhy_Anno.xml '''
Changed line 157 from:
$ cd myTestDir
to:
Added lines 160-168:








* Let's create the "bundle document" - which is an xml document that simply references the Snapshot Schema, Temporal Annotation, and Physical Annotation documents we just created. Call the file "myBundle.xml".
Added lines 170-184:
'''myBundle.xml '''
%box% [@

@]










* Let's create the "config document" - which is an xml document that simply references the Bundle document and Snapshot XML files that we've created. This config document is the actual input to Squash. Call the file "config.xml".
Added lines 186-217:
'''config.xml '''
%box% [@

@]












!!! What ##XMLSchema has already given us


!! Running Squash


!! Viewing output


Conceptually, we will have a
%box% [@
$ cd myTestDir
@]

\\
\\
Added lines 20-23:


Added lines 27-29:

Added lines 37-44:







* Let's create the "Snaphsot Schema:" the schema against which myXML_version1.xml and myXML_version2.xml validate. Call it "mySnapshotSchema.xsd".
Changed lines 46-68 from:
\\
This tutorial will assume that we have already [[Main/InstallationGuide | built and installed]] ##XSchema, and we are running squash from a command line (using csh or one of it's derivatives). If this is not the case, the general ideas below will still be applicable.
\\
\\
We'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to @@/home/sthomas/@@...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my MacBook Pro.
\\
\\


!! Getting our ducks in a row
We first need to create/organize some files and our working environment.





!!! What we need to create ourselves





* Let's create a directory for our run. Let's call it ''myRun1'':
to:
'''mySnapshotSchema.xsd'''
Deleted lines 47-62:
$ cd $TXSCHEMA/src/test_cases
$ mkdir myRun1
$ cd myRun1
@]








* Let's create the "Snaphsot Schema:" the schema against which myXML_version1.xml and myXML_version2.xml validate. Call it "mySnapshotSchema.xsd".
\\
'''mySnapshotSchema.xsd'''
%box% [@
Added lines 43-46:


Added lines 50-52:

Added lines 62-66:



Added lines 103-108:




Added lines 136-141:




Added lines 144-146:
%box% [@
$ xmllint --schema mySnapshotSchema.xsd salary_version1.xml
$ xmllint --schema mySnapshotSchema.xsd salary_version2.xml
Changed lines 148-154 from:
\\
'''salaray_version2.xml'''
%box% [@
$ xmllint --schema mySnapshotSchema.xsd salary_version1.xml
$ xmllint --schema mySnapshotSchema.xsd salary_version2.xml
@]
to:
Added lines 155-171:





* Let's create the "temporal annotation" - which is an xml document describing which element can change over time (in our case - salary). Call the file "myTemp_Anno.xml".
\\
'''myTemp_Anno.xml '''
%box% [@

@]




Changed lines 95-102 from:
stuff
to:
<?xml version="1.0" encoding="UTF-8"?>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="./mySnapshotSchema.xsd">
<personData>
<firstName>Steve</firstName>
<salary>45000</salary>
</personData>
</person>
Changed lines 107-114 from:
stuff
to:
<?xml version="1.0" encoding="UTF-8"?>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="./mySnapshotSchema.xsd">
<personData>
<firstName>Steve</firstName>
<salary>51000</salary>
</personData>
</person>
Changed lines 118-135 from:





!!! What ##XMLSchema has already given us


!! Running Squash


!! Viewing output


Conceptually, we will have a
%box% [@
$ cd myTestDir
to:
* At this point, we should be able to use a traditional validator tool to make sure our schema and XML documents are formatted correctly. Let's use libxml2's ''xmllint'' tool (which comes standard with most *nix distributions).
Deleted line 120:
Added lines 122-147:
'''salaray_version2.xml'''
%box% [@
$ xmllint --schema mySnapshotSchema.xsd salary_version1.xml
$ xmllint --schema mySnapshotSchema.xsd salary_version2.xml
@]

After each of the above commands, a line similar to "salary_version1.xml validates" should be displayed to @@stdout@@. If any errors occurred, read the output produced by @@xmllint@@; the output is usually helpful.





!!! What ##XMLSchema has already given us


!! Running Squash


!! Viewing output


Conceptually, we will have a
%box% [@
$ cd myTestDir
@]
Added line 149:
\\
Changed lines 59-87 from:
stuff
to:
<?xml version="1.0" encoding="UTF-8"?>

<!-- mySnapshotSchema.xsd. Created by Stephen W. Thomas as
a simple example.
June 2008.
-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">

<xsd:element name="person">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element ref="personData"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="personData">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element name="firstName" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="salary" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

</xsd:schema>
Changed line 63 from:
* Let's create the "Non-Temporal Data:" a series of simple, regular XML documents. Since this is a simple example, let's make only two: call them ''myXML_version1.xml'' and ''myXML_version2.xml''. Note that ''myXML_version2.xml'' will be exactly the same as version 1 with only one minor difference.
to:
* Let's create the "Non-Temporal Data:" a series of simple, regular XML documents. Since this is a simple example, let's make only two: call them 'salary_version1.xml'' and ''salary_version2.xml''. Note that ''salary_version2.xml'' will be exactly the same as version 1 with only one minor difference.
Changed line 65 from:
'''myXML_version1.xml '''
to:
'''salary_version1.xml '''
Changed line 70 from:
'''myXML_version2.xml'''
to:
'''salaray_version2.xml'''
Changed lines 12-13 from:
to:
'''Scenario:''' We have been keeping track of Steve's salary in an XML file, when all of a sudden he gets a raise (way to go Steve!). So we have two versions of the file - one with the salary before the raise ($45,000) and one with the salary after the raise ($51,000).
\\
\\
Changed line 9 from:
We'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to /home/sthomas/...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my MacBook Pro.
to:
We'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to @@/home/sthomas/@@...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my MacBook Pro.
Deleted lines 26-28:


* Let's create the "Non-Temporal Data:" a series of simple, regular XML documents. Since this is a simple example, let's make only two: call them ''myXML_version1.xml'' and ''myXML_version2.xml''. Note that ''myXML_version2.xml'' will be exactly the same as version 1 with only one minor difference.
Deleted lines 27-30:
'''myXML_version1.xml"'
%box% [@
stuff
@]
Changed lines 29-43 from:
'''myXML_version2.xml"'
to:
This tutorial will assume that we have already [[Main/InstallationGuide | built and installed]] ##XSchema, and we are running squash from a command line (using csh or one of it's derivatives). If this is not the case, the general ideas below will still be applicable.
\\
\\
We
'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to @@/home/sthomas/@@...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my MacBook Pro.
\\
\\


!! Getting our ducks in a row
We first need to create/organize some files and our working environment.

!!! What we need to create ourselves


* Let's create a directory for our run. Let's call it ''myRun1'':
Changed lines 45-47 from:
stuff
to:
$ cd $TXSCHEMA/src/test_cases
$ mkdir myRun1
$ cd myRun1
Changed lines 52-66 from:
* The "Snaphsot Schema:" the schema (meaning an .xsd file) against which myXML_version1.xml and myXML_version2.xml validate. Call it




!!! What ##XMLSchema has already given us


!! Running Squash


!! Viewing output


Conceptually, we will have a
to:
* Let's create the "Snaphsot Schema:" the schema against which myXML_version1.xml and myXML_version2.xml validate. Call it "mySnapshotSchema.xsd".
\\
'''mySnapshotSchema.xsd'''
Changed line 56 from:
$ cd myTestDir
to:
stuff
Deleted line 57:
Added lines 59-60:

* Let's create the "Non-Temporal Data:" a series of simple, regular XML documents. Since this is a simple example, let's make only two: call them ''myXML_version1.xml'' and ''myXML_version2.xml''. Note that ''myXML_version2.xml'' will be exactly the same as version 1 with only one minor difference.
Added lines 62-94:
'''myXML_version1.xml '''
%box% [@
stuff
@]
\\
'''myXML_version2.xml'''
%box% [@
stuff
@]








!!! What ##XMLSchema has already given us


!! Running Squash


!! Viewing output


Conceptually, we will have a
%box% [@
$ cd myTestDir
@]

\\
\\
Changed line 9 from:
We'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to /home/sthomas/...) for generality.
to:
We'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to /home/sthomas/...) for generality. In my scenario, $TXSCHEMA will refer the location @@/Users/doofus/Documents/workspace/tXSchema@@ on my MacBook Pro.
Added lines 18-19:
Added lines 27-28:
Changed line 31 from:
'''myXML_version1.xml"
to:
'''myXML_version1.xml"'
Changed line 36 from:
'''myXML_version2.xml"
to:
'''myXML_version2.xml"'
Added lines 40-42:

Added lines 45-47:

Changed line 18 from:
# Let's create a directory for our run. Let's call it ''myRun1'':
to:
* Let's create a directory for our run. Let's call it ''myRun1'':
Changed lines 25-27 from:
# The "Non-Temporal Data:" a series of simple, regular XML documents. Since this is a simple example, let's made two: call them ''myXML_version1.xml'' and ''myXML_version2.xml''. Note that ''myXML_version2.xml'' will be exactly the same as version 1 with only one minor difference.
# The "Snaphsot Schema:" the schema (meaning an .xsd file) against which myXML_version1.xml and myXML_version2.xml validate. Call it
to:
* Let's create the "Non-Temporal Data:" a series of simple, regular XML documents. Since this is a simple example, let's make only two: call them ''myXML_version1.xml'' and ''myXML_version2.xml''. Note that ''myXML_version2.xml'' will be exactly the same as version 1 with only one minor difference.
\\
'''myXML_version1.xml"
%box% [@
stuff
@]
\\
'''myXML_version2.xml"
%box% [@
stuff
@]
*
The "Snaphsot Schema:" the schema (meaning an .xsd file) against which myXML_version1.xml and myXML_version2.xml validate. Call it
Added line 24:
Added lines 18-23:
# Let's create a directory for our run. Let's call it ''myRun1'':
%box% [@
$ cd $TXSCHEMA/src/test_cases
$ mkdir myRun1
$ cd myRun1
@]
Changed lines 7-9 from:
to:
\\
\\
We'll also assume that you will be working out of the default ##tXSchema directory structure, with the base absolute path to that directory being $TXSCHEMA. (Note: it isn't necessary to actually create an environment variable by this name; the tutorial will only refer to this name (as opposed to /home/sthomas/...) for generality.
\\
\\
Changed lines 15-16 from:
We first need to organize some files and our working environment.
to:
We first need to create/organize some files and our working environment.
Changed lines 18-20 from:
* The "Non-Temporal Data:" a series of simple, regular XML documents. Since this is a simple example, let's made two: call them ''myXML_version1.xml'' and ''myXML_version2.xml''. Note that ''myXML_version2.xml'' will be exactly the same as version 1 with only one minor difference.
* The "Snaphsot Schema:" the schema (meaning an .xsd file) against which myXML_version1.xml and myXML_version2.xml validate. Call it
to:
# The "Non-Temporal Data:" a series of simple, regular XML documents. Since this is a simple example, let's made two: call them ''myXML_version1.xml'' and ''myXML_version2.xml''. Note that ''myXML_version2.xml'' will be exactly the same as version 1 with only one minor difference.
# The "Snaphsot Schema:" the schema (meaning an .xsd file) against which myXML_version1.xml and myXML_version2.xml validate. Call it
Changed lines 29-33 from:
@]
to:
@]

\\
\\
[[Main/Users | Back to Users page.]
]
Changed line 5 from:
to:
\\
Deleted line 3:
Added line 4:
Added line 6:
Changed lines 3-4 from:
This tutorial is meant as a first exposure to the tools and as such, is the simplest possible example for Squash that I could think of.
to:
This tutorial is meant as a first exposure to the tools and as such, is the simplest possible example for Squash that I could think of. We will create all the files we need, run Squash, and view the output.
\\
This tutorial will assume that we have already [[Main/InstallationGuide | built and installed]] ##XSchema, and we are running squash from a command line (using csh or one of it's derivatives). If this is not the case, the general ideas below will still be applicable.
Changed lines 10-11 from:
to:
We first need to organize some files and our working environment.
Changed lines 3-20 from:
to:
This tutorial is meant as a first exposure to the tools and as such, is the simplest possible example for Squash that I could think of.

!! Getting our ducks in a row

!!! What we need to create ourselves
* The "Non-Temporal Data:" a series of simple, regular XML documents. Since this is a simple example, let's made two: call them ''myXML_version1.xml'' and ''myXML_version2.xml''. Note that ''myXML_version2.xml'' will be exactly the same as version 1 with only one minor difference.
* The "Snaphsot Schema:" the schema (meaning an .xsd file) against which myXML_version1.xml and myXML_version2.xml validate. Call it

!!! What ##XMLSchema has already given us


!! Running Squash


!! Viewing output


Conceptually, we will have a
Changed lines 1-6 from:
TODO
to:
%define=box block bgcolor=#f7f7f7 margin-left=40px margin-top=5px margin-bottom=10px' padding=5px%


%box% [@
$ cd myTestDir
@]
Added line 1:
TODO
Edit - History - Print - Recent Changes - Search
Page last modified on June 15, 2009, at 01:25 PM