Recent Changes - Search:

About

Users

Internal

Other Info (External)

edit SideBar

Tutorials1

Main.Tutorials1 History

Hide minor edits - Show changes to markup

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 tXSchema. Let's check to make sure.

to:

After the file is created, it should validate against the ASchema.xsd document that comes standard with tXSchema. 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 tXSchema. Let's check to make sure.

to:

After the file is created, it should validate against the TSSchema.xsd document that comes standard with tXSchema. 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 tXSchema. Let's check to make sure.

to:

After the file is created, it should validate against the TDSchema.xsd document that comes standard with tXSchema. 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 tXSchema. Let's check to make sure.

xmllint --schema ../../../etc/ConfigSchema.xsd config.xml
to:

You may see a few warning messages or other debug output from tXSchema, 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 tXSchema, 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 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

<?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 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 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 machine)

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 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 ttXSchema 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 machine)

Deleted lines 356-360:
Changed line 359 from:
to:
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 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 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 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 ttXSchema 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 ttXSchema 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

$ cd myTestDir
to:
Changed line 290 from:

You may see a few warning messages or other debug output from tXSchema, but

to:

You may see a few warning messages or other debug output from tXSchema, 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

$ 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 tXSchema. Let's check to make sure.

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:

$ squash config.xml
Added line 252:

You may see a few warning messages or other debug output from tXSchema, 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 tXSchema. 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 tXSchema. 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


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 tXSchema. 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


Added lines 225-243:



Running Squash




Viewing output

Conceptually, we will have a

$ 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 tXMLSchema 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 tXMLSchema 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 tXMLSchema 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


  • 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


What tXMLSchema has already given us

Running Squash

Viewing output

Conceptually, we will have a

$ 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 built and installed tXSchema, 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 ttXSchema 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 [@

Added lines 43-46:
Added lines 50-52:
Added lines 62-66:
Added lines 103-108:
Added lines 136-141:
Added lines 144-146:

[@ $ xmllint --schema mySnapshotSchema.xsd salary_version1.xml $ xmllint --schema mySnapshotSchema.xsd salary_version2.xml

Changed lines 148-154 from:


salaray_version2.xml

$ 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


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 tXMLSchema has already given us

Running Squash

Viewing output

Conceptually, we will have a [@ $ 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

$ 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 tXMLSchema has already given us

Running Squash

Viewing output

Conceptually, we will have a

$ 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 ttXSchema 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 ttXSchema 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"'

stuff
Changed lines 29-43 from:

'''myXML_version2.xml"'

to:

This tutorial will assume that we have already built and installed tXSchema, 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 ttXSchema 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 tXMLSchema 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

stuff


myXML_version2.xml

stuff

What tXMLSchema has already given us

Running Squash

Viewing output

Conceptually, we will have a

$ cd myTestDir


\\

Changed line 9 from:

We'll also assume that you will be working out of the default ttXSchema 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 ttXSchema 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:
  1. 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:
  1. 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.
  2. 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"

stuff


'''myXML_version2.xml"

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:
  1. Let's create a directory for our run. Let's call it myRun1:
$ 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 ttXSchema 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:
  1. 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.
  2. 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:
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 built and installed tXSchema, 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 tXMLSchema has already given us

Running Squash

Viewing output

Conceptually, we will have a

Changed lines 1-6 from:

TODO

to:
$ cd myTestDir
Added line 1:

TODO

Edit - History - Print - Recent Changes - Search
Page last modified on June 15, 2009, at 01:25 PM