libxml-ruby 2.9.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY +811 -790
  3. data/LICENSE +20 -20
  4. data/MANIFEST +166 -166
  5. data/README.rdoc +188 -184
  6. data/Rakefile +1 -1
  7. data/ext/libxml/libxml.c +80 -80
  8. data/ext/libxml/ruby_libxml.h +75 -75
  9. data/ext/libxml/ruby_xml.c +0 -84
  10. data/ext/libxml/ruby_xml.h +0 -10
  11. data/ext/libxml/ruby_xml_attr.h +12 -12
  12. data/ext/libxml/ruby_xml_attr_decl.c +153 -153
  13. data/ext/libxml/ruby_xml_attr_decl.h +11 -11
  14. data/ext/libxml/ruby_xml_attributes.c +275 -275
  15. data/ext/libxml/ruby_xml_attributes.h +15 -15
  16. data/ext/libxml/ruby_xml_document.c +21 -27
  17. data/ext/libxml/ruby_xml_document.h +11 -11
  18. data/ext/libxml/ruby_xml_dtd.c +2 -13
  19. data/ext/libxml/ruby_xml_dtd.h +9 -9
  20. data/ext/libxml/ruby_xml_error.c +996 -996
  21. data/ext/libxml/ruby_xml_error.h +12 -12
  22. data/ext/libxml/ruby_xml_html_parser.c +89 -92
  23. data/ext/libxml/ruby_xml_html_parser.h +10 -10
  24. data/ext/libxml/ruby_xml_html_parser_context.h +10 -10
  25. data/ext/libxml/ruby_xml_html_parser_options.c +46 -46
  26. data/ext/libxml/ruby_xml_html_parser_options.h +10 -10
  27. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  28. data/ext/libxml/ruby_xml_io.c +0 -1
  29. data/ext/libxml/ruby_xml_io.h +10 -10
  30. data/ext/libxml/ruby_xml_namespace.c +153 -153
  31. data/ext/libxml/ruby_xml_namespace.h +10 -10
  32. data/ext/libxml/ruby_xml_namespaces.c +293 -293
  33. data/ext/libxml/ruby_xml_namespaces.h +9 -9
  34. data/ext/libxml/ruby_xml_node.c +100 -143
  35. data/ext/libxml/ruby_xml_node.h +13 -11
  36. data/ext/libxml/ruby_xml_parser.c +91 -94
  37. data/ext/libxml/ruby_xml_parser.h +12 -12
  38. data/ext/libxml/ruby_xml_parser_context.h +10 -10
  39. data/ext/libxml/ruby_xml_parser_options.c +66 -66
  40. data/ext/libxml/ruby_xml_parser_options.h +12 -12
  41. data/ext/libxml/ruby_xml_reader.c +45 -37
  42. data/ext/libxml/ruby_xml_reader.h +17 -17
  43. data/ext/libxml/ruby_xml_relaxng.h +10 -10
  44. data/ext/libxml/ruby_xml_sax2_handler.c +3 -3
  45. data/ext/libxml/ruby_xml_sax2_handler.h +10 -10
  46. data/ext/libxml/ruby_xml_sax_parser.c +116 -120
  47. data/ext/libxml/ruby_xml_sax_parser.h +10 -10
  48. data/ext/libxml/ruby_xml_schema.h +809 -809
  49. data/ext/libxml/ruby_xml_schema_attribute.c +109 -109
  50. data/ext/libxml/ruby_xml_schema_attribute.h +15 -15
  51. data/ext/libxml/ruby_xml_schema_element.c +94 -94
  52. data/ext/libxml/ruby_xml_schema_element.h +14 -14
  53. data/ext/libxml/ruby_xml_schema_facet.c +52 -52
  54. data/ext/libxml/ruby_xml_schema_facet.h +13 -13
  55. data/ext/libxml/ruby_xml_schema_type.c +259 -259
  56. data/ext/libxml/ruby_xml_schema_type.h +9 -9
  57. data/ext/libxml/ruby_xml_version.h +9 -9
  58. data/ext/libxml/ruby_xml_writer.c +1136 -1136
  59. data/ext/libxml/ruby_xml_writer.h +10 -10
  60. data/ext/libxml/ruby_xml_xinclude.c +16 -16
  61. data/ext/libxml/ruby_xml_xinclude.h +11 -11
  62. data/ext/libxml/ruby_xml_xpath.c +42 -36
  63. data/ext/libxml/ruby_xml_xpath.h +13 -13
  64. data/ext/libxml/ruby_xml_xpath_context.c +1 -1
  65. data/ext/libxml/ruby_xml_xpath_context.h +9 -9
  66. data/ext/libxml/ruby_xml_xpath_expression.c +81 -81
  67. data/ext/libxml/ruby_xml_xpath_expression.h +10 -10
  68. data/ext/libxml/ruby_xml_xpath_object.c +5 -2
  69. data/ext/libxml/ruby_xml_xpath_object.h +17 -17
  70. data/ext/libxml/ruby_xml_xpointer.c +99 -99
  71. data/ext/libxml/ruby_xml_xpointer.h +11 -11
  72. data/ext/vc/libxml_ruby.sln +17 -15
  73. data/lib/libxml.rb +1 -6
  74. data/lib/libxml/node.rb +2 -78
  75. data/lib/libxml/parser.rb +0 -266
  76. data/lib/libxml/sax_parser.rb +0 -17
  77. data/lib/libxml/schema.rb +66 -66
  78. data/lib/libxml/schema/attribute.rb +19 -19
  79. data/lib/libxml/schema/element.rb +27 -27
  80. data/lib/libxml/schema/type.rb +29 -29
  81. data/script/benchmark/depixelate +634 -634
  82. data/script/benchmark/hamlet.xml +9054 -9054
  83. data/script/benchmark/parsecount +170 -170
  84. data/script/benchmark/throughput +41 -41
  85. data/script/test +6 -6
  86. data/test/c14n/given/example-1.xml +14 -14
  87. data/test/c14n/given/example-2.xml +11 -11
  88. data/test/c14n/given/example-3.xml +18 -18
  89. data/test/c14n/given/example-4.xml +9 -9
  90. data/test/c14n/given/example-5.xml +12 -12
  91. data/test/c14n/given/example-6.xml +2 -2
  92. data/test/c14n/given/example-7.xml +11 -11
  93. data/test/c14n/given/example-8.xml +11 -11
  94. data/test/c14n/given/example-8.xpath +9 -9
  95. data/test/c14n/result/1-1-without-comments/example-1 +3 -3
  96. data/test/c14n/result/1-1-without-comments/example-2 +10 -10
  97. data/test/c14n/result/1-1-without-comments/example-3 +13 -13
  98. data/test/c14n/result/1-1-without-comments/example-4 +8 -8
  99. data/test/c14n/result/1-1-without-comments/example-5 +2 -2
  100. data/test/c14n/result/with-comments/example-1 +5 -5
  101. data/test/c14n/result/with-comments/example-2 +10 -10
  102. data/test/c14n/result/with-comments/example-3 +13 -13
  103. data/test/c14n/result/with-comments/example-4 +8 -8
  104. data/test/c14n/result/with-comments/example-5 +3 -3
  105. data/test/c14n/result/without-comments/example-1 +3 -3
  106. data/test/c14n/result/without-comments/example-2 +10 -10
  107. data/test/c14n/result/without-comments/example-3 +13 -13
  108. data/test/c14n/result/without-comments/example-4 +8 -8
  109. data/test/c14n/result/without-comments/example-5 +2 -2
  110. data/test/model/atom.xml +12 -12
  111. data/test/model/bands.iso-8859-1.xml +4 -4
  112. data/test/model/bands.utf-8.xml +4 -4
  113. data/test/model/bands.xml +4 -4
  114. data/test/model/books.xml +153 -153
  115. data/test/model/merge_bug_data.xml +58 -58
  116. data/test/model/ruby-lang.html +238 -238
  117. data/test/model/rubynet.xml +79 -79
  118. data/test/model/shiporder.rnc +28 -28
  119. data/test/model/shiporder.rng +86 -86
  120. data/test/model/shiporder.xml +22 -22
  121. data/test/model/shiporder.xsd +39 -39
  122. data/test/model/soap.xml +27 -27
  123. data/test/model/xinclude.xml +4 -4
  124. data/test/tc_attributes.rb +0 -6
  125. data/test/tc_error.rb +157 -158
  126. data/test/tc_node.rb +33 -17
  127. data/test/tc_node_edit.rb +0 -15
  128. data/test/tc_node_pi.rb +39 -39
  129. data/test/tc_parser.rb +0 -48
  130. data/test/tc_reader.rb +12 -53
  131. data/test/tc_writer.rb +447 -447
  132. data/test/tc_xpath.rb +1 -1
  133. data/test/test_helper.rb +2 -2
  134. metadata +3 -8
  135. data/ext/libxml/extconf.h +0 -4
  136. data/lib/libxml/ns.rb +0 -22
  137. data/lib/libxml/properties.rb +0 -23
  138. data/lib/libxml/reader.rb +0 -29
  139. data/lib/libxml/xpath_object.rb +0 -16
@@ -36,23 +36,6 @@ module LibXML
36
36
  context = XML::Parser::Context.string(string)
37
37
  self.new(context)
38
38
  end
39
-
40
- # :enddoc:
41
-
42
- def file=(value)
43
- warn("XML::SaxParser#file is deprecated. Use XML::SaxParser.file instead")
44
- @context = XML::Parser::Context.file(value)
45
- end
46
-
47
- def io=(value)
48
- warn("XML::SaxParser#io is deprecated. Use XML::SaxParser.io instead")
49
- @context = XML::Parser::Context.io(value)
50
- end
51
-
52
- def string=(value)
53
- warn("XML::SaxParser#string is deprecated. Use XML::SaxParser.string instead")
54
- @context = XML::Parser::Context.string(value)
55
- end
56
39
  end
57
40
  end
58
41
  end
@@ -1,67 +1,67 @@
1
- module LibXML
2
- module XML
3
- class Schema
4
- module Types
5
- XML_SCHEMA_TYPE_BASIC = 1 # A built-in datatype
6
- XML_SCHEMA_TYPE_ANY = 2
7
- XML_SCHEMA_TYPE_FACET = 3
8
- XML_SCHEMA_TYPE_SIMPLE = 4
9
- XML_SCHEMA_TYPE_COMPLEX = 5
10
- XML_SCHEMA_TYPE_SEQUENCE = 6
11
- XML_SCHEMA_TYPE_CHOICE = 7
12
- XML_SCHEMA_TYPE_ALL = 8
13
- XML_SCHEMA_TYPE_SIMPLE_CONTENT = 9
14
- XML_SCHEMA_TYPE_COMPLEX_CONTENT = 10
15
- XML_SCHEMA_TYPE_UR = 11
16
- XML_SCHEMA_TYPE_RESTRICTION = 12
17
- XML_SCHEMA_TYPE_EXTENSION = 13
18
- XML_SCHEMA_TYPE_ELEMENT = 14
19
- XML_SCHEMA_TYPE_ATTRIBUTE = 15
20
- XML_SCHEMA_TYPE_ATTRIBUTEGROUP = 16
21
- XML_SCHEMA_TYPE_GROUP = 17
22
- XML_SCHEMA_TYPE_NOTATION = 18
23
- XML_SCHEMA_TYPE_LIST = 19
24
- XML_SCHEMA_TYPE_UNION = 20
25
- XML_SCHEMA_TYPE_ANY_ATTRIBUTE = 21
26
- XML_SCHEMA_TYPE_IDC_UNIQUE = 22
27
- XML_SCHEMA_TYPE_IDC_KEY = 23
28
- XML_SCHEMA_TYPE_IDC_KEYREF = 24
29
- XML_SCHEMA_TYPE_PARTICLE = 25
30
- XML_SCHEMA_TYPE_ATTRIBUTE_USE = 26
31
- XML_SCHEMA_FACET_MININCLUSIVE = 1000
32
- XML_SCHEMA_FACET_MINEXCLUSIVE = 1001
33
- XML_SCHEMA_FACET_MAXINCLUSIVE = 1002
34
- XML_SCHEMA_FACET_MAXEXCLUSIVE = 1003
35
- XML_SCHEMA_FACET_TOTALDIGITS = 1004
36
- XML_SCHEMA_FACET_FRACTIONDIGITS = 1005
37
- XML_SCHEMA_FACET_PATTERN = 1006
38
- XML_SCHEMA_FACET_ENUMERATION = 1007
39
- XML_SCHEMA_FACET_WHITESPACE = 1008
40
- XML_SCHEMA_FACET_LENGTH = 1009
41
- XML_SCHEMA_FACET_MAXLENGTH = 1010
42
- XML_SCHEMA_FACET_MINLENGTH = 1011
43
- XML_SCHEMA_EXTRA_QNAMEREF = 2000
44
- XML_SCHEMA_EXTRA_ATTR_USE_PROHIB = 2001
45
- end
46
-
47
- class Namespaces < Array
48
- def find_by_href(href)
49
- find { |n| n.href == href }
50
- end
51
-
52
- def find_by_prefix(prefix)
53
- find { |n| n.prefix == prefix }
54
- end
55
- end
56
-
57
- def namespaces
58
- Namespaces.new(_namespaces.uniq { |n| n.href })
59
- end
60
-
61
- def self.cached(location)
62
- @_schemas ||= {}
63
- @_schemas[location] ||= new(location)
64
- end
65
- end
66
- end
1
+ module LibXML
2
+ module XML
3
+ class Schema
4
+ module Types
5
+ XML_SCHEMA_TYPE_BASIC = 1 # A built-in datatype
6
+ XML_SCHEMA_TYPE_ANY = 2
7
+ XML_SCHEMA_TYPE_FACET = 3
8
+ XML_SCHEMA_TYPE_SIMPLE = 4
9
+ XML_SCHEMA_TYPE_COMPLEX = 5
10
+ XML_SCHEMA_TYPE_SEQUENCE = 6
11
+ XML_SCHEMA_TYPE_CHOICE = 7
12
+ XML_SCHEMA_TYPE_ALL = 8
13
+ XML_SCHEMA_TYPE_SIMPLE_CONTENT = 9
14
+ XML_SCHEMA_TYPE_COMPLEX_CONTENT = 10
15
+ XML_SCHEMA_TYPE_UR = 11
16
+ XML_SCHEMA_TYPE_RESTRICTION = 12
17
+ XML_SCHEMA_TYPE_EXTENSION = 13
18
+ XML_SCHEMA_TYPE_ELEMENT = 14
19
+ XML_SCHEMA_TYPE_ATTRIBUTE = 15
20
+ XML_SCHEMA_TYPE_ATTRIBUTEGROUP = 16
21
+ XML_SCHEMA_TYPE_GROUP = 17
22
+ XML_SCHEMA_TYPE_NOTATION = 18
23
+ XML_SCHEMA_TYPE_LIST = 19
24
+ XML_SCHEMA_TYPE_UNION = 20
25
+ XML_SCHEMA_TYPE_ANY_ATTRIBUTE = 21
26
+ XML_SCHEMA_TYPE_IDC_UNIQUE = 22
27
+ XML_SCHEMA_TYPE_IDC_KEY = 23
28
+ XML_SCHEMA_TYPE_IDC_KEYREF = 24
29
+ XML_SCHEMA_TYPE_PARTICLE = 25
30
+ XML_SCHEMA_TYPE_ATTRIBUTE_USE = 26
31
+ XML_SCHEMA_FACET_MININCLUSIVE = 1000
32
+ XML_SCHEMA_FACET_MINEXCLUSIVE = 1001
33
+ XML_SCHEMA_FACET_MAXINCLUSIVE = 1002
34
+ XML_SCHEMA_FACET_MAXEXCLUSIVE = 1003
35
+ XML_SCHEMA_FACET_TOTALDIGITS = 1004
36
+ XML_SCHEMA_FACET_FRACTIONDIGITS = 1005
37
+ XML_SCHEMA_FACET_PATTERN = 1006
38
+ XML_SCHEMA_FACET_ENUMERATION = 1007
39
+ XML_SCHEMA_FACET_WHITESPACE = 1008
40
+ XML_SCHEMA_FACET_LENGTH = 1009
41
+ XML_SCHEMA_FACET_MAXLENGTH = 1010
42
+ XML_SCHEMA_FACET_MINLENGTH = 1011
43
+ XML_SCHEMA_EXTRA_QNAMEREF = 2000
44
+ XML_SCHEMA_EXTRA_ATTR_USE_PROHIB = 2001
45
+ end
46
+
47
+ class Namespaces < Array
48
+ def find_by_href(href)
49
+ find { |n| n.href == href }
50
+ end
51
+
52
+ def find_by_prefix(prefix)
53
+ find { |n| n.prefix == prefix }
54
+ end
55
+ end
56
+
57
+ def namespaces
58
+ Namespaces.new(_namespaces.uniq { |n| n.href })
59
+ end
60
+
61
+ def self.cached(location)
62
+ @_schemas ||= {}
63
+ @_schemas[location] ||= new(location)
64
+ end
65
+ end
66
+ end
67
67
  end
@@ -1,19 +1,19 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class Schema::Attribute
6
- REQUIRED = 1
7
- OPTIONAL = 2
8
-
9
- def default
10
- node['default']
11
- end
12
-
13
- def required?
14
- occurs == REQUIRED
15
- end
16
-
17
- end
18
- end
19
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class Schema::Attribute
6
+ REQUIRED = 1
7
+ OPTIONAL = 2
8
+
9
+ def default
10
+ node['default']
11
+ end
12
+
13
+ def required?
14
+ occurs == REQUIRED
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -1,27 +1,27 @@
1
- # encoding: UTF-8
2
-
3
- module LibXML
4
- module XML
5
- class Schema::Element
6
- def required?
7
- !min_occurs.zero?
8
- end
9
-
10
- def array?
11
- max_occurs > 1
12
- end
13
-
14
- def elements
15
- type.elements
16
- end
17
-
18
- def annotation
19
- return if node.nil?
20
- annotations = node.children.select { |n| n.name == 'annotation' }
21
- annotations.map do |annotation|
22
- annotation.children.map(&:content).join("\n")
23
- end.join("\n")
24
- end
25
- end
26
- end
27
- end
1
+ # encoding: UTF-8
2
+
3
+ module LibXML
4
+ module XML
5
+ class Schema::Element
6
+ def required?
7
+ !min_occurs.zero?
8
+ end
9
+
10
+ def array?
11
+ max_occurs > 1
12
+ end
13
+
14
+ def elements
15
+ type.elements
16
+ end
17
+
18
+ def annotation
19
+ return if node.nil?
20
+ annotations = node.children.select { |n| n.name == 'annotation' }
21
+ annotations.map do |annotation|
22
+ annotation.children.map(&:content).join("\n")
23
+ end.join("\n")
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,29 +1,29 @@
1
- module LibXML
2
- module XML
3
- class Schema::Type
4
- def kind_name
5
- Schema::Types.constants.find { |k| Schema::Types.const_get(k) == kind }
6
- end
7
-
8
- def annotation
9
- return if node.nil?
10
- annotations = node.children.select { |n| n.name == 'annotation' }
11
- annotations.map do |annotation|
12
- annotation.children.map(&:content).join("\n")
13
- end.join("\n")
14
- end
15
-
16
- def annonymus_subtypes
17
- elements.select { |_, e| e.type.name.nil? }
18
- end
19
-
20
- def annonymus_subtypes_recursively(parent=nil)
21
- annonymus_subtypes.map do |element_name, e|
22
- [{[parent, element_name].compact.join('::') => e.type},
23
- e.type.annonymus_subtypes_recursively(element_name)]
24
- end.flatten
25
- end
26
-
27
- end
28
- end
29
- end
1
+ module LibXML
2
+ module XML
3
+ class Schema::Type
4
+ def kind_name
5
+ Schema::Types.constants.find { |k| Schema::Types.const_get(k) == kind }
6
+ end
7
+
8
+ def annotation
9
+ return if node.nil?
10
+ annotations = node.children.select { |n| n.name == 'annotation' }
11
+ annotations.map do |annotation|
12
+ annotation.children.map(&:content).join("\n")
13
+ end.join("\n")
14
+ end
15
+
16
+ def annonymus_subtypes
17
+ elements.select { |_, e| e.type.name.nil? }
18
+ end
19
+
20
+ def annonymus_subtypes_recursively(parent=nil)
21
+ annonymus_subtypes.map do |element_name, e|
22
+ [{[parent, element_name].compact.join('::') => e.type},
23
+ e.type.annonymus_subtypes_recursively(element_name)]
24
+ end.flatten
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -1,634 +1,634 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
- require 'benchmark'
5
- require 'hpricot'
6
- require 'rexml/document'
7
- require 'xml'
8
-
9
-
10
- # Taken from http://depixelate.com/2008/4/23/ruby-xml-parsing-benchmarks
11
-
12
- XML_STRING = DATA.read
13
-
14
- class Parse
15
- def self.libxml
16
- doc = XML::Parser.string(XML_STRING).parse
17
- ary = []
18
- doc.find('/*/*/*').each do |node|
19
- case node.name
20
- when 'ItemQueryRs'
21
- node.each_element do |child|
22
- ary << child.find_first('./ListID')
23
- end
24
- end
25
- end
26
- ary
27
- end
28
-
29
- def self.rexml
30
- doc = REXML::Document.new(XML_STRING)
31
- ary = []
32
- REXML::XPath.each(doc, '/*/*/*') do |node|
33
- case node.name
34
- when 'ItemQueryRs'
35
- node.elements.each do |element|
36
- ary << rexml_fetch(element, 'ListID')
37
- end
38
- end
39
- end
40
- ary
41
- end
42
-
43
- def self.hpricot
44
- doc = Hpricot.XML(XML_STRING)
45
- ary = []
46
- response_element = doc.search('/*/*/*').each do |node|
47
- next unless node.elem?
48
- case node.name
49
- when 'ItemQueryRs'
50
- node.containers.each do |element|
51
- ary << hpricot_fetch(element/'ListID')
52
- end
53
- end
54
- end
55
- ary
56
- end
57
-
58
- # rexml helper
59
- def self.rexml_fetch(node, name)
60
- e = REXML::XPath.first(node, name)
61
- e ? e.text : nil
62
- end
63
-
64
- # hpricot helper
65
- def self.hpricot_fetch(path)
66
- return nil if path.nil? || path.empty?
67
- path = path.first if path.is_a?(Array)
68
- path.innerHTML
69
- end
70
- end
71
-
72
- TIMES = 10
73
- Benchmark.bmbm do |x|
74
- x.report('libxml') { TIMES.times { Parse.libxml } }
75
- x.report('Hpricot') { TIMES.times { Parse.hpricot } }
76
- x.report('REXML') { TIMES.times { Parse.rexml } }
77
- end
78
-
79
- __END__
80
- <?xml version="1.0"?>
81
- <QBXML>
82
- <QBXMLMsgsRs>
83
- <ItemQueryRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK">
84
- <ItemServiceRet>
85
- <ListID>240000-1071531214</ListID>
86
- <TimeCreated>2003-12-15T15:33:34-08:00</TimeCreated>
87
- <TimeModified>2003-12-15T15:34:51-08:00</TimeModified>
88
- <EditSequence>1071531291</EditSequence>
89
- <Name>Delivery</Name>
90
- <FullName>Delivery</FullName>
91
- <IsActive>true</IsActive>
92
- <Sublevel>0</Sublevel>
93
- <SalesTaxCodeRef>
94
- <ListID>20000-999021789</ListID>
95
- <FullName>Non</FullName>
96
- </SalesTaxCodeRef>
97
- <SalesOrPurchase>
98
- <Desc>Delivery Service Fee (free for orders over $100)</Desc>
99
- <Price>15.00</Price>
100
- <AccountRef>
101
- <ListID>610001-1071531179</ListID>
102
- <FullName>Service</FullName>
103
- </AccountRef>
104
- </SalesOrPurchase>
105
- </ItemServiceRet>
106
- <ItemServiceRet>
107
- <ListID>10000-934380927</ListID>
108
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
109
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
110
- <EditSequence>934380927</EditSequence>
111
- <Name>Design</Name>
112
- <FullName>Design</FullName>
113
- <IsActive>true</IsActive>
114
- <Sublevel>0</Sublevel>
115
- <SalesTaxCodeRef>
116
- <ListID>20000-999021789</ListID>
117
- <FullName>Non</FullName>
118
- </SalesTaxCodeRef>
119
- <SalesOrPurchase>
120
- <Desc>Custom Landscape Design</Desc>
121
- <Price>55.00</Price>
122
- <AccountRef>
123
- <ListID>150000-934380913</ListID>
124
- <FullName>Landscaping Services:Design Services</FullName>
125
- </AccountRef>
126
- </SalesOrPurchase>
127
- </ItemServiceRet>
128
- <ItemServiceRet>
129
- <ListID>20000-934380927</ListID>
130
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
131
- <TimeModified>1999-08-11T08:59:12-08:00</TimeModified>
132
- <EditSequence>934387152</EditSequence>
133
- <Name>Gardening</Name>
134
- <FullName>Gardening</FullName>
135
- <IsActive>true</IsActive>
136
- <Sublevel>0</Sublevel>
137
- <SalesTaxCodeRef>
138
- <ListID>20000-999021789</ListID>
139
- <FullName>Non</FullName>
140
- </SalesTaxCodeRef>
141
- <SalesOrPurchase>
142
- <Desc>Weekly gardening services</Desc>
143
- <Price>0.00</Price>
144
- <AccountRef>
145
- <ListID>1F0000-934380913</ListID>
146
- <FullName>Landscaping Services:Labor:Installation</FullName>
147
- </AccountRef>
148
- </SalesOrPurchase>
149
- </ItemServiceRet>
150
- <ItemServiceRet>
151
- <ListID>30000-934380927</ListID>
152
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
153
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
154
- <EditSequence>934380927</EditSequence>
155
- <Name>Installation</Name>
156
- <FullName>Installation</FullName>
157
- <IsActive>true</IsActive>
158
- <Sublevel>0</Sublevel>
159
- <SalesTaxCodeRef>
160
- <ListID>20000-999021789</ListID>
161
- <FullName>Non</FullName>
162
- </SalesTaxCodeRef>
163
- <SalesOrPurchase>
164
- <Desc>Installation of landscape design</Desc>
165
- <Price>35.00</Price>
166
- <AccountRef>
167
- <ListID>1F0000-934380913</ListID>
168
- <FullName>Landscaping Services:Labor:Installation</FullName>
169
- </AccountRef>
170
- </SalesOrPurchase>
171
- </ItemServiceRet>
172
- <ItemServiceRet>
173
- <ListID>40000-934380927</ListID>
174
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
175
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
176
- <EditSequence>934380927</EditSequence>
177
- <Name>Pest Control</Name>
178
- <FullName>Pest Control</FullName>
179
- <IsActive>true</IsActive>
180
- <Sublevel>0</Sublevel>
181
- <SalesTaxCodeRef>
182
- <ListID>20000-999021789</ListID>
183
- <FullName>Non</FullName>
184
- </SalesTaxCodeRef>
185
- <SalesOrPurchase>
186
- <Desc>Pest control services</Desc>
187
- <Price>0.00</Price>
188
- <AccountRef>
189
- <ListID>200000-934380913</ListID>
190
- <FullName>Landscaping Services:Labor:Maintenance &amp; Repairs</FullName>
191
- </AccountRef>
192
- </SalesOrPurchase>
193
- </ItemServiceRet>
194
- <ItemServiceRet>
195
- <ListID>2E0000-1071514896</ListID>
196
- <TimeCreated>2003-12-15T11:01:36-08:00</TimeCreated>
197
- <TimeModified>2003-12-15T14:42:51-08:00</TimeModified>
198
- <EditSequence>1071528171</EditSequence>
199
- <Name>Tree Removal</Name>
200
- <FullName>Tree Removal</FullName>
201
- <IsActive>true</IsActive>
202
- <Sublevel>0</Sublevel>
203
- <SalesTaxCodeRef>
204
- <ListID>20000-999021789</ListID>
205
- <FullName>Non</FullName>
206
- </SalesTaxCodeRef>
207
- <SalesOrPurchase>
208
- <Desc>Tree Removal Service</Desc>
209
- <Price>0.00</Price>
210
- <AccountRef>
211
- <ListID>610001-1071531179</ListID>
212
- <FullName>Service</FullName>
213
- </AccountRef>
214
- </SalesOrPurchase>
215
- </ItemServiceRet>
216
- <ItemServiceRet>
217
- <ListID>50000-934380927</ListID>
218
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
219
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
220
- <EditSequence>934380927</EditSequence>
221
- <Name>Trimming</Name>
222
- <FullName>Trimming</FullName>
223
- <IsActive>true</IsActive>
224
- <Sublevel>0</Sublevel>
225
- <SalesTaxCodeRef>
226
- <ListID>20000-999021789</ListID>
227
- <FullName>Non</FullName>
228
- </SalesTaxCodeRef>
229
- <SalesOrPurchase>
230
- <Desc>Tree and shrub trimming</Desc>
231
- <Price>35.00</Price>
232
- <AccountRef>
233
- <ListID>200000-934380913</ListID>
234
- <FullName>Landscaping Services:Labor:Maintenance &amp; Repairs</FullName>
235
- </AccountRef>
236
- </SalesOrPurchase>
237
- </ItemServiceRet>
238
- <ItemNonInventoryRet>
239
- <ListID>B0000-934380927</ListID>
240
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
241
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
242
- <EditSequence>934380927</EditSequence>
243
- <Name>Concrete</Name>
244
- <FullName>Concrete</FullName>
245
- <IsActive>true</IsActive>
246
- <Sublevel>0</Sublevel>
247
- <SalesTaxCodeRef>
248
- <ListID>10000-999021789</ListID>
249
- <FullName>Tax</FullName>
250
- </SalesTaxCodeRef>
251
- <SalesOrPurchase>
252
- <Desc>Concrete for fountain installation</Desc>
253
- <Price>0.00</Price>
254
- <AccountRef>
255
- <ListID>1B0000-934380913</ListID>
256
- <FullName>Landscaping Services:Job Materials:Fountains &amp; Garden Lighting</FullName>
257
- </AccountRef>
258
- </SalesOrPurchase>
259
- </ItemNonInventoryRet>
260
- <ItemNonInventoryRet>
261
- <ListID>C0000-934380927</ListID>
262
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
263
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
264
- <EditSequence>934380927</EditSequence>
265
- <Name>Deck Lumber</Name>
266
- <FullName>Deck Lumber</FullName>
267
- <IsActive>true</IsActive>
268
- <Sublevel>0</Sublevel>
269
- <SalesTaxCodeRef>
270
- <ListID>10000-999021789</ListID>
271
- <FullName>Tax</FullName>
272
- </SalesTaxCodeRef>
273
- <SalesOrPurchase>
274
- <Desc>Deck Lumber</Desc>
275
- <Price>0.00</Price>
276
- <AccountRef>
277
- <ListID>1A0000-934380913</ListID>
278
- <FullName>Landscaping Services:Job Materials:Decks &amp; Patios</FullName>
279
- </AccountRef>
280
- </SalesOrPurchase>
281
- </ItemNonInventoryRet>
282
- <ItemNonInventoryRet>
283
- <ListID>210000-1071530240</ListID>
284
- <TimeCreated>2003-12-15T15:17:20-08:00</TimeCreated>
285
- <TimeModified>2003-12-15T15:17:20-08:00</TimeModified>
286
- <EditSequence>1071530240</EditSequence>
287
- <Name>Fertilizer</Name>
288
- <FullName>Fertilizer</FullName>
289
- <IsActive>true</IsActive>
290
- <Sublevel>0</Sublevel>
291
- <SalesTaxCodeRef>
292
- <ListID>10000-999021789</ListID>
293
- <FullName>Tax</FullName>
294
- </SalesTaxCodeRef>
295
- <SalesOrPurchase>
296
- <Desc>Parent Item - Do Not Use</Desc>
297
- <Price>0.00</Price>
298
- <AccountRef>
299
- <ListID>600001-1071530232</ListID>
300
- <FullName>Retail Sales</FullName>
301
- </AccountRef>
302
- </SalesOrPurchase>
303
- </ItemNonInventoryRet>
304
- <ItemInventoryRet>
305
- <ListID>250000-1071523682</ListID>
306
- <TimeCreated>2003-12-15T13:28:02-08:00</TimeCreated>
307
- <TimeModified>2003-12-15T13:44:20-08:00</TimeModified>
308
- <EditSequence>1071524660</EditSequence>
309
- <Name>Irrigation Hose</Name>
310
- <FullName>Irrigation Hose</FullName>
311
- <IsActive>true</IsActive>
312
- <Sublevel>0</Sublevel>
313
- <SalesTaxCodeRef>
314
- <ListID>10000-999021789</ListID>
315
- <FullName>Tax</FullName>
316
- </SalesTaxCodeRef>
317
- <SalesDesc>Parent Item Vinyl Irrigation Line- Do Not Purchase or Sell</SalesDesc>
318
- <SalesPrice>0.00</SalesPrice>
319
- <IncomeAccountRef>
320
- <ListID>690001-1071523679</ListID>
321
- <FullName>Landscaping Services:Job Materials:Misc Materials</FullName>
322
- </IncomeAccountRef>
323
- <PurchaseDesc>Vinyl Irrigation LineParent Item - Do Not Purchase or Sell</PurchaseDesc>
324
- <PurchaseCost>0.00</PurchaseCost>
325
- <COGSAccountRef>
326
- <ListID>240000-934380913</ListID>
327
- <FullName>Cost of Goods Sold</FullName>
328
- </COGSAccountRef>
329
- <AssetAccountRef>
330
- <ListID>60000-934380912</ListID>
331
- <FullName>Inventory Asset</FullName>
332
- </AssetAccountRef>
333
- <ReorderPoint>-1</ReorderPoint>
334
- <QuantityOnHand>0</QuantityOnHand>
335
- <AverageCost>0.00</AverageCost>
336
- <QuantityOnOrder>0</QuantityOnOrder>
337
- <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
338
- </ItemInventoryRet>
339
- <ItemInventoryRet>
340
- <ListID>270000-1071524193</ListID>
341
- <TimeCreated>2003-12-15T13:36:33-08:00</TimeCreated>
342
- <TimeModified>2003-12-15T13:38:13-08:00</TimeModified>
343
- <EditSequence>1071524293</EditSequence>
344
- <Name>1/2" Line</Name>
345
- <FullName>Irrigation Hose:1/2" Line</FullName>
346
- <IsActive>true</IsActive>
347
- <ParentRef>
348
- <ListID>250000-1071523682</ListID>
349
- <FullName>Irrigation Hose</FullName>
350
- </ParentRef>
351
- <Sublevel>1</Sublevel>
352
- <SalesTaxCodeRef>
353
- <ListID>10000-999021789</ListID>
354
- <FullName>Tax</FullName>
355
- </SalesTaxCodeRef>
356
- <SalesDesc>1/2" Vinyl Irrigation Line</SalesDesc>
357
- <SalesPrice>0.15</SalesPrice>
358
- <IncomeAccountRef>
359
- <ListID>690001-1071523679</ListID>
360
- <FullName>Landscaping Services:Job Materials:Misc Materials</FullName>
361
- </IncomeAccountRef>
362
- <PurchaseDesc>1/2" Vinyl Irrigation Line</PurchaseDesc>
363
- <PurchaseCost>0.12</PurchaseCost>
364
- <COGSAccountRef>
365
- <ListID>240000-934380913</ListID>
366
- <FullName>Cost of Goods Sold</FullName>
367
- </COGSAccountRef>
368
- <AssetAccountRef>
369
- <ListID>60000-934380912</ListID>
370
- <FullName>Inventory Asset</FullName>
371
- </AssetAccountRef>
372
- <ReorderPoint>1500</ReorderPoint>
373
- <QuantityOnHand>1783</QuantityOnHand>
374
- <AverageCost>0.12</AverageCost>
375
- <QuantityOnOrder>0</QuantityOnOrder>
376
- <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
377
- </ItemInventoryRet>
378
- <ItemInventoryRet>
379
- <ListID>260000-1071523858</ListID>
380
- <TimeCreated>2003-12-15T13:30:58-08:00</TimeCreated>
381
- <TimeModified>2003-12-15T13:37:52-08:00</TimeModified>
382
- <EditSequence>1071524272</EditSequence>
383
- <Name>1/4" Line</Name>
384
- <FullName>Irrigation Hose:1/4" Line</FullName>
385
- <IsActive>true</IsActive>
386
- <ParentRef>
387
- <ListID>250000-1071523682</ListID>
388
- <FullName>Irrigation Hose</FullName>
389
- </ParentRef>
390
- <Sublevel>1</Sublevel>
391
- <SalesTaxCodeRef>
392
- <ListID>10000-999021789</ListID>
393
- <FullName>Tax</FullName>
394
- </SalesTaxCodeRef>
395
- <SalesDesc>1/4" Vinyl Irrigation Line</SalesDesc>
396
- <SalesPrice>0.10</SalesPrice>
397
- <IncomeAccountRef>
398
- <ListID>690001-1071523679</ListID>
399
- <FullName>Landscaping Services:Job Materials:Misc Materials</FullName>
400
- </IncomeAccountRef>
401
- <PurchaseDesc>1/4" Vinyl Irrigation Line</PurchaseDesc>
402
- <PurchaseCost>0.07</PurchaseCost>
403
- <COGSAccountRef>
404
- <ListID>240000-934380913</ListID>
405
- <FullName>Cost of Goods Sold</FullName>
406
- </COGSAccountRef>
407
- <AssetAccountRef>
408
- <ListID>60000-934380912</ListID>
409
- <FullName>Inventory Asset</FullName>
410
- </AssetAccountRef>
411
- <ReorderPoint>500</ReorderPoint>
412
- <QuantityOnHand>1235</QuantityOnHand>
413
- <AverageCost>0.07</AverageCost>
414
- <QuantityOnOrder>0</QuantityOnOrder>
415
- <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
416
- </ItemInventoryRet>
417
- <ItemInventoryRet>
418
- <ListID>280000-1071524260</ListID>
419
- <TimeCreated>2003-12-15T13:37:40-08:00</TimeCreated>
420
- <TimeModified>2003-12-15T13:37:40-08:00</TimeModified>
421
- <EditSequence>1071524260</EditSequence>
422
- <Name>3/4" Line</Name>
423
- <FullName>Irrigation Hose:3/4" Line</FullName>
424
- <IsActive>true</IsActive>
425
- <ParentRef>
426
- <ListID>250000-1071523682</ListID>
427
- <FullName>Irrigation Hose</FullName>
428
- </ParentRef>
429
- <Sublevel>1</Sublevel>
430
- <SalesTaxCodeRef>
431
- <ListID>10000-999021789</ListID>
432
- <FullName>Tax</FullName>
433
- </SalesTaxCodeRef>
434
- <SalesDesc>3/4" Vinyl Irrigation Line</SalesDesc>
435
- <SalesPrice>0.27</SalesPrice>
436
- <IncomeAccountRef>
437
- <ListID>690001-1071523679</ListID>
438
- <FullName>Landscaping Services:Job Materials:Misc Materials</FullName>
439
- </IncomeAccountRef>
440
- <PurchaseDesc>3/4" Vinyl Irrigation Line</PurchaseDesc>
441
- <PurchaseCost>0.18</PurchaseCost>
442
- <COGSAccountRef>
443
- <ListID>240000-934380913</ListID>
444
- <FullName>Cost of Goods Sold</FullName>
445
- </COGSAccountRef>
446
- <AssetAccountRef>
447
- <ListID>60000-934380912</ListID>
448
- <FullName>Inventory Asset</FullName>
449
- </AssetAccountRef>
450
- <ReorderPoint>1500</ReorderPoint>
451
- <QuantityOnHand>2670</QuantityOnHand>
452
- <AverageCost>0.18</AverageCost>
453
- <QuantityOnOrder>0</QuantityOnOrder>
454
- <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
455
- </ItemInventoryRet>
456
- <ItemInventoryRet>
457
- <ListID>60000-934380927</ListID>
458
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
459
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
460
- <EditSequence>934380927</EditSequence>
461
- <Name>Lighting</Name>
462
- <FullName>Lighting</FullName>
463
- <IsActive>true</IsActive>
464
- <Sublevel>0</Sublevel>
465
- <SalesTaxCodeRef>
466
- <ListID>10000-999021789</ListID>
467
- <FullName>Tax</FullName>
468
- </SalesTaxCodeRef>
469
- <SalesDesc>Garden Lighting</SalesDesc>
470
- <SalesPrice>0.00</SalesPrice>
471
- <IncomeAccountRef>
472
- <ListID>1B0000-934380913</ListID>
473
- <FullName>Landscaping Services:Job Materials:Fountains &amp; Garden Lighting</FullName>
474
- </IncomeAccountRef>
475
- <PurchaseDesc>Garden Lighting</PurchaseDesc>
476
- <PurchaseCost>0.00</PurchaseCost>
477
- <COGSAccountRef>
478
- <ListID>240000-934380913</ListID>
479
- <FullName>Cost of Goods Sold</FullName>
480
- </COGSAccountRef>
481
- <AssetAccountRef>
482
- <ListID>60000-934380912</ListID>
483
- <FullName>Inventory Asset</FullName>
484
- </AssetAccountRef>
485
- <QuantityOnHand>94</QuantityOnHand>
486
- <AverageCost>14.80</AverageCost>
487
- <QuantityOnOrder>28</QuantityOnOrder>
488
- <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
489
- </ItemInventoryRet>
490
- <ItemInventoryRet>
491
- <ListID>70000-934380927</ListID>
492
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
493
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
494
- <EditSequence>934380927</EditSequence>
495
- <Name>Pump</Name>
496
- <FullName>Pump</FullName>
497
- <IsActive>true</IsActive>
498
- <Sublevel>0</Sublevel>
499
- <SalesTaxCodeRef>
500
- <ListID>10000-999021789</ListID>
501
- <FullName>Tax</FullName>
502
- </SalesTaxCodeRef>
503
- <SalesDesc>Fountain pump</SalesDesc>
504
- <SalesPrice>75.00</SalesPrice>
505
- <IncomeAccountRef>
506
- <ListID>1B0000-934380913</ListID>
507
- <FullName>Landscaping Services:Job Materials:Fountains &amp; Garden Lighting</FullName>
508
- </IncomeAccountRef>
509
- <PurchaseDesc>Fountain pump #198-30</PurchaseDesc>
510
- <PurchaseCost>56.00</PurchaseCost>
511
- <COGSAccountRef>
512
- <ListID>240000-934380913</ListID>
513
- <FullName>Cost of Goods Sold</FullName>
514
- </COGSAccountRef>
515
- <AssetAccountRef>
516
- <ListID>60000-934380912</ListID>
517
- <FullName>Inventory Asset</FullName>
518
- </AssetAccountRef>
519
- <QuantityOnHand>48</QuantityOnHand>
520
- <AverageCost>53.93</AverageCost>
521
- <QuantityOnOrder>0</QuantityOnOrder>
522
- <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
523
- </ItemInventoryRet>
524
- <ItemInventoryRet>
525
- <ListID>80000-934380927</ListID>
526
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
527
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
528
- <EditSequence>934380927</EditSequence>
529
- <Name>Soil</Name>
530
- <FullName>Soil</FullName>
531
- <IsActive>true</IsActive>
532
- <Sublevel>0</Sublevel>
533
- <SalesTaxCodeRef>
534
- <ListID>10000-999021789</ListID>
535
- <FullName>Tax</FullName>
536
- </SalesTaxCodeRef>
537
- <SalesDesc>Soil, 2 cubic ft bag</SalesDesc>
538
- <SalesPrice>6.75</SalesPrice>
539
- <IncomeAccountRef>
540
- <ListID>1C0000-934380913</ListID>
541
- <FullName>Landscaping Services:Job Materials:Plants and Sod</FullName>
542
- </IncomeAccountRef>
543
- <PurchaseDesc>Soil, 2 cubic ft bag</PurchaseDesc>
544
- <PurchaseCost>5.30</PurchaseCost>
545
- <COGSAccountRef>
546
- <ListID>240000-934380913</ListID>
547
- <FullName>Cost of Goods Sold</FullName>
548
- </COGSAccountRef>
549
- <PrefVendorRef>
550
- <ListID>10000-934380927</ListID>
551
- <FullName>Middlefield Nursery</FullName>
552
- </PrefVendorRef>
553
- <AssetAccountRef>
554
- <ListID>60000-934380912</ListID>
555
- <FullName>Inventory Asset</FullName>
556
- </AssetAccountRef>
557
- <ReorderPoint>25</ReorderPoint>
558
- <QuantityOnHand>0</QuantityOnHand>
559
- <AverageCost>5.30</AverageCost>
560
- <QuantityOnOrder>6</QuantityOnOrder>
561
- <QuantityOnSalesOrder>10</QuantityOnSalesOrder>
562
- </ItemInventoryRet>
563
- <ItemInventoryRet>
564
- <ListID>90000-934380927</ListID>
565
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
566
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
567
- <EditSequence>934380927</EditSequence>
568
- <Name>Sprinkler Hds</Name>
569
- <FullName>Sprinkler Hds</FullName>
570
- <IsActive>true</IsActive>
571
- <Sublevel>0</Sublevel>
572
- <SalesTaxCodeRef>
573
- <ListID>10000-999021789</ListID>
574
- <FullName>Tax</FullName>
575
- </SalesTaxCodeRef>
576
- <SalesDesc>Sprinkler heads</SalesDesc>
577
- <SalesPrice>0.00</SalesPrice>
578
- <IncomeAccountRef>
579
- <ListID>1D0000-934380913</ListID>
580
- <FullName>Landscaping Services:Job Materials:Sprinklers &amp; Drip systems</FullName>
581
- </IncomeAccountRef>
582
- <PurchaseDesc>Sprinkler head #BLS9081-09</PurchaseDesc>
583
- <PurchaseCost>0.00</PurchaseCost>
584
- <COGSAccountRef>
585
- <ListID>240000-934380913</ListID>
586
- <FullName>Cost of Goods Sold</FullName>
587
- </COGSAccountRef>
588
- <AssetAccountRef>
589
- <ListID>60000-934380912</ListID>
590
- <FullName>Inventory Asset</FullName>
591
- </AssetAccountRef>
592
- <QuantityOnHand>69</QuantityOnHand>
593
- <AverageCost>6.38</AverageCost>
594
- <QuantityOnOrder>36</QuantityOnOrder>
595
- <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
596
- </ItemInventoryRet>
597
- <ItemInventoryRet>
598
- <ListID>A0000-934380927</ListID>
599
- <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
600
- <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
601
- <EditSequence>934380927</EditSequence>
602
- <Name>Sprkl pipes</Name>
603
- <FullName>Sprkl pipes</FullName>
604
- <IsActive>true</IsActive>
605
- <Sublevel>0</Sublevel>
606
- <SalesTaxCodeRef>
607
- <ListID>10000-999021789</ListID>
608
- <FullName>Tax</FullName>
609
- </SalesTaxCodeRef>
610
- <SalesDesc>Plastic sprinkler piping</SalesDesc>
611
- <SalesPrice>2.75</SalesPrice>
612
- <IncomeAccountRef>
613
- <ListID>1D0000-934380913</ListID>
614
- <FullName>Landscaping Services:Job Materials:Sprinklers &amp; Drip systems</FullName>
615
- </IncomeAccountRef>
616
- <PurchaseDesc>Plastic sprinkler piping #1098-20</PurchaseDesc>
617
- <PurchaseCost>2.10</PurchaseCost>
618
- <COGSAccountRef>
619
- <ListID>240000-934380913</ListID>
620
- <FullName>Cost of Goods Sold</FullName>
621
- </COGSAccountRef>
622
- <AssetAccountRef>
623
- <ListID>60000-934380912</ListID>
624
- <FullName>Inventory Asset</FullName>
625
- </AssetAccountRef>
626
- <ReorderPoint>250</ReorderPoint>
627
- <QuantityOnHand>826</QuantityOnHand>
628
- <AverageCost>2.10</AverageCost>
629
- <QuantityOnOrder>115</QuantityOnOrder>
630
- <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
631
- </ItemInventoryRet>
632
- </ItemQueryRs>
633
- </QBXMLMsgsRs>
634
- </QBXML>
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'benchmark'
5
+ require 'hpricot'
6
+ require 'rexml/document'
7
+ require 'xml'
8
+
9
+
10
+ # Taken from http://depixelate.com/2008/4/23/ruby-xml-parsing-benchmarks
11
+
12
+ XML_STRING = DATA.read
13
+
14
+ class Parse
15
+ def self.libxml
16
+ doc = XML::Parser.string(XML_STRING).parse
17
+ ary = []
18
+ doc.find('/*/*/*').each do |node|
19
+ case node.name
20
+ when 'ItemQueryRs'
21
+ node.each_element do |child|
22
+ ary << child.find_first('./ListID')
23
+ end
24
+ end
25
+ end
26
+ ary
27
+ end
28
+
29
+ def self.rexml
30
+ doc = REXML::Document.new(XML_STRING)
31
+ ary = []
32
+ REXML::XPath.each(doc, '/*/*/*') do |node|
33
+ case node.name
34
+ when 'ItemQueryRs'
35
+ node.elements.each do |element|
36
+ ary << rexml_fetch(element, 'ListID')
37
+ end
38
+ end
39
+ end
40
+ ary
41
+ end
42
+
43
+ def self.hpricot
44
+ doc = Hpricot.XML(XML_STRING)
45
+ ary = []
46
+ response_element = doc.search('/*/*/*').each do |node|
47
+ next unless node.elem?
48
+ case node.name
49
+ when 'ItemQueryRs'
50
+ node.containers.each do |element|
51
+ ary << hpricot_fetch(element/'ListID')
52
+ end
53
+ end
54
+ end
55
+ ary
56
+ end
57
+
58
+ # rexml helper
59
+ def self.rexml_fetch(node, name)
60
+ e = REXML::XPath.first(node, name)
61
+ e ? e.text : nil
62
+ end
63
+
64
+ # hpricot helper
65
+ def self.hpricot_fetch(path)
66
+ return nil if path.nil? || path.empty?
67
+ path = path.first if path.is_a?(Array)
68
+ path.innerHTML
69
+ end
70
+ end
71
+
72
+ TIMES = 10
73
+ Benchmark.bmbm do |x|
74
+ x.report('libxml') { TIMES.times { Parse.libxml } }
75
+ x.report('Hpricot') { TIMES.times { Parse.hpricot } }
76
+ x.report('REXML') { TIMES.times { Parse.rexml } }
77
+ end
78
+
79
+ __END__
80
+ <?xml version="1.0"?>
81
+ <QBXML>
82
+ <QBXMLMsgsRs>
83
+ <ItemQueryRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK">
84
+ <ItemServiceRet>
85
+ <ListID>240000-1071531214</ListID>
86
+ <TimeCreated>2003-12-15T15:33:34-08:00</TimeCreated>
87
+ <TimeModified>2003-12-15T15:34:51-08:00</TimeModified>
88
+ <EditSequence>1071531291</EditSequence>
89
+ <Name>Delivery</Name>
90
+ <FullName>Delivery</FullName>
91
+ <IsActive>true</IsActive>
92
+ <Sublevel>0</Sublevel>
93
+ <SalesTaxCodeRef>
94
+ <ListID>20000-999021789</ListID>
95
+ <FullName>Non</FullName>
96
+ </SalesTaxCodeRef>
97
+ <SalesOrPurchase>
98
+ <Desc>Delivery Service Fee (free for orders over $100)</Desc>
99
+ <Price>15.00</Price>
100
+ <AccountRef>
101
+ <ListID>610001-1071531179</ListID>
102
+ <FullName>Service</FullName>
103
+ </AccountRef>
104
+ </SalesOrPurchase>
105
+ </ItemServiceRet>
106
+ <ItemServiceRet>
107
+ <ListID>10000-934380927</ListID>
108
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
109
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
110
+ <EditSequence>934380927</EditSequence>
111
+ <Name>Design</Name>
112
+ <FullName>Design</FullName>
113
+ <IsActive>true</IsActive>
114
+ <Sublevel>0</Sublevel>
115
+ <SalesTaxCodeRef>
116
+ <ListID>20000-999021789</ListID>
117
+ <FullName>Non</FullName>
118
+ </SalesTaxCodeRef>
119
+ <SalesOrPurchase>
120
+ <Desc>Custom Landscape Design</Desc>
121
+ <Price>55.00</Price>
122
+ <AccountRef>
123
+ <ListID>150000-934380913</ListID>
124
+ <FullName>Landscaping Services:Design Services</FullName>
125
+ </AccountRef>
126
+ </SalesOrPurchase>
127
+ </ItemServiceRet>
128
+ <ItemServiceRet>
129
+ <ListID>20000-934380927</ListID>
130
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
131
+ <TimeModified>1999-08-11T08:59:12-08:00</TimeModified>
132
+ <EditSequence>934387152</EditSequence>
133
+ <Name>Gardening</Name>
134
+ <FullName>Gardening</FullName>
135
+ <IsActive>true</IsActive>
136
+ <Sublevel>0</Sublevel>
137
+ <SalesTaxCodeRef>
138
+ <ListID>20000-999021789</ListID>
139
+ <FullName>Non</FullName>
140
+ </SalesTaxCodeRef>
141
+ <SalesOrPurchase>
142
+ <Desc>Weekly gardening services</Desc>
143
+ <Price>0.00</Price>
144
+ <AccountRef>
145
+ <ListID>1F0000-934380913</ListID>
146
+ <FullName>Landscaping Services:Labor:Installation</FullName>
147
+ </AccountRef>
148
+ </SalesOrPurchase>
149
+ </ItemServiceRet>
150
+ <ItemServiceRet>
151
+ <ListID>30000-934380927</ListID>
152
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
153
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
154
+ <EditSequence>934380927</EditSequence>
155
+ <Name>Installation</Name>
156
+ <FullName>Installation</FullName>
157
+ <IsActive>true</IsActive>
158
+ <Sublevel>0</Sublevel>
159
+ <SalesTaxCodeRef>
160
+ <ListID>20000-999021789</ListID>
161
+ <FullName>Non</FullName>
162
+ </SalesTaxCodeRef>
163
+ <SalesOrPurchase>
164
+ <Desc>Installation of landscape design</Desc>
165
+ <Price>35.00</Price>
166
+ <AccountRef>
167
+ <ListID>1F0000-934380913</ListID>
168
+ <FullName>Landscaping Services:Labor:Installation</FullName>
169
+ </AccountRef>
170
+ </SalesOrPurchase>
171
+ </ItemServiceRet>
172
+ <ItemServiceRet>
173
+ <ListID>40000-934380927</ListID>
174
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
175
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
176
+ <EditSequence>934380927</EditSequence>
177
+ <Name>Pest Control</Name>
178
+ <FullName>Pest Control</FullName>
179
+ <IsActive>true</IsActive>
180
+ <Sublevel>0</Sublevel>
181
+ <SalesTaxCodeRef>
182
+ <ListID>20000-999021789</ListID>
183
+ <FullName>Non</FullName>
184
+ </SalesTaxCodeRef>
185
+ <SalesOrPurchase>
186
+ <Desc>Pest control services</Desc>
187
+ <Price>0.00</Price>
188
+ <AccountRef>
189
+ <ListID>200000-934380913</ListID>
190
+ <FullName>Landscaping Services:Labor:Maintenance &amp; Repairs</FullName>
191
+ </AccountRef>
192
+ </SalesOrPurchase>
193
+ </ItemServiceRet>
194
+ <ItemServiceRet>
195
+ <ListID>2E0000-1071514896</ListID>
196
+ <TimeCreated>2003-12-15T11:01:36-08:00</TimeCreated>
197
+ <TimeModified>2003-12-15T14:42:51-08:00</TimeModified>
198
+ <EditSequence>1071528171</EditSequence>
199
+ <Name>Tree Removal</Name>
200
+ <FullName>Tree Removal</FullName>
201
+ <IsActive>true</IsActive>
202
+ <Sublevel>0</Sublevel>
203
+ <SalesTaxCodeRef>
204
+ <ListID>20000-999021789</ListID>
205
+ <FullName>Non</FullName>
206
+ </SalesTaxCodeRef>
207
+ <SalesOrPurchase>
208
+ <Desc>Tree Removal Service</Desc>
209
+ <Price>0.00</Price>
210
+ <AccountRef>
211
+ <ListID>610001-1071531179</ListID>
212
+ <FullName>Service</FullName>
213
+ </AccountRef>
214
+ </SalesOrPurchase>
215
+ </ItemServiceRet>
216
+ <ItemServiceRet>
217
+ <ListID>50000-934380927</ListID>
218
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
219
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
220
+ <EditSequence>934380927</EditSequence>
221
+ <Name>Trimming</Name>
222
+ <FullName>Trimming</FullName>
223
+ <IsActive>true</IsActive>
224
+ <Sublevel>0</Sublevel>
225
+ <SalesTaxCodeRef>
226
+ <ListID>20000-999021789</ListID>
227
+ <FullName>Non</FullName>
228
+ </SalesTaxCodeRef>
229
+ <SalesOrPurchase>
230
+ <Desc>Tree and shrub trimming</Desc>
231
+ <Price>35.00</Price>
232
+ <AccountRef>
233
+ <ListID>200000-934380913</ListID>
234
+ <FullName>Landscaping Services:Labor:Maintenance &amp; Repairs</FullName>
235
+ </AccountRef>
236
+ </SalesOrPurchase>
237
+ </ItemServiceRet>
238
+ <ItemNonInventoryRet>
239
+ <ListID>B0000-934380927</ListID>
240
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
241
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
242
+ <EditSequence>934380927</EditSequence>
243
+ <Name>Concrete</Name>
244
+ <FullName>Concrete</FullName>
245
+ <IsActive>true</IsActive>
246
+ <Sublevel>0</Sublevel>
247
+ <SalesTaxCodeRef>
248
+ <ListID>10000-999021789</ListID>
249
+ <FullName>Tax</FullName>
250
+ </SalesTaxCodeRef>
251
+ <SalesOrPurchase>
252
+ <Desc>Concrete for fountain installation</Desc>
253
+ <Price>0.00</Price>
254
+ <AccountRef>
255
+ <ListID>1B0000-934380913</ListID>
256
+ <FullName>Landscaping Services:Job Materials:Fountains &amp; Garden Lighting</FullName>
257
+ </AccountRef>
258
+ </SalesOrPurchase>
259
+ </ItemNonInventoryRet>
260
+ <ItemNonInventoryRet>
261
+ <ListID>C0000-934380927</ListID>
262
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
263
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
264
+ <EditSequence>934380927</EditSequence>
265
+ <Name>Deck Lumber</Name>
266
+ <FullName>Deck Lumber</FullName>
267
+ <IsActive>true</IsActive>
268
+ <Sublevel>0</Sublevel>
269
+ <SalesTaxCodeRef>
270
+ <ListID>10000-999021789</ListID>
271
+ <FullName>Tax</FullName>
272
+ </SalesTaxCodeRef>
273
+ <SalesOrPurchase>
274
+ <Desc>Deck Lumber</Desc>
275
+ <Price>0.00</Price>
276
+ <AccountRef>
277
+ <ListID>1A0000-934380913</ListID>
278
+ <FullName>Landscaping Services:Job Materials:Decks &amp; Patios</FullName>
279
+ </AccountRef>
280
+ </SalesOrPurchase>
281
+ </ItemNonInventoryRet>
282
+ <ItemNonInventoryRet>
283
+ <ListID>210000-1071530240</ListID>
284
+ <TimeCreated>2003-12-15T15:17:20-08:00</TimeCreated>
285
+ <TimeModified>2003-12-15T15:17:20-08:00</TimeModified>
286
+ <EditSequence>1071530240</EditSequence>
287
+ <Name>Fertilizer</Name>
288
+ <FullName>Fertilizer</FullName>
289
+ <IsActive>true</IsActive>
290
+ <Sublevel>0</Sublevel>
291
+ <SalesTaxCodeRef>
292
+ <ListID>10000-999021789</ListID>
293
+ <FullName>Tax</FullName>
294
+ </SalesTaxCodeRef>
295
+ <SalesOrPurchase>
296
+ <Desc>Parent Item - Do Not Use</Desc>
297
+ <Price>0.00</Price>
298
+ <AccountRef>
299
+ <ListID>600001-1071530232</ListID>
300
+ <FullName>Retail Sales</FullName>
301
+ </AccountRef>
302
+ </SalesOrPurchase>
303
+ </ItemNonInventoryRet>
304
+ <ItemInventoryRet>
305
+ <ListID>250000-1071523682</ListID>
306
+ <TimeCreated>2003-12-15T13:28:02-08:00</TimeCreated>
307
+ <TimeModified>2003-12-15T13:44:20-08:00</TimeModified>
308
+ <EditSequence>1071524660</EditSequence>
309
+ <Name>Irrigation Hose</Name>
310
+ <FullName>Irrigation Hose</FullName>
311
+ <IsActive>true</IsActive>
312
+ <Sublevel>0</Sublevel>
313
+ <SalesTaxCodeRef>
314
+ <ListID>10000-999021789</ListID>
315
+ <FullName>Tax</FullName>
316
+ </SalesTaxCodeRef>
317
+ <SalesDesc>Parent Item Vinyl Irrigation Line- Do Not Purchase or Sell</SalesDesc>
318
+ <SalesPrice>0.00</SalesPrice>
319
+ <IncomeAccountRef>
320
+ <ListID>690001-1071523679</ListID>
321
+ <FullName>Landscaping Services:Job Materials:Misc Materials</FullName>
322
+ </IncomeAccountRef>
323
+ <PurchaseDesc>Vinyl Irrigation LineParent Item - Do Not Purchase or Sell</PurchaseDesc>
324
+ <PurchaseCost>0.00</PurchaseCost>
325
+ <COGSAccountRef>
326
+ <ListID>240000-934380913</ListID>
327
+ <FullName>Cost of Goods Sold</FullName>
328
+ </COGSAccountRef>
329
+ <AssetAccountRef>
330
+ <ListID>60000-934380912</ListID>
331
+ <FullName>Inventory Asset</FullName>
332
+ </AssetAccountRef>
333
+ <ReorderPoint>-1</ReorderPoint>
334
+ <QuantityOnHand>0</QuantityOnHand>
335
+ <AverageCost>0.00</AverageCost>
336
+ <QuantityOnOrder>0</QuantityOnOrder>
337
+ <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
338
+ </ItemInventoryRet>
339
+ <ItemInventoryRet>
340
+ <ListID>270000-1071524193</ListID>
341
+ <TimeCreated>2003-12-15T13:36:33-08:00</TimeCreated>
342
+ <TimeModified>2003-12-15T13:38:13-08:00</TimeModified>
343
+ <EditSequence>1071524293</EditSequence>
344
+ <Name>1/2" Line</Name>
345
+ <FullName>Irrigation Hose:1/2" Line</FullName>
346
+ <IsActive>true</IsActive>
347
+ <ParentRef>
348
+ <ListID>250000-1071523682</ListID>
349
+ <FullName>Irrigation Hose</FullName>
350
+ </ParentRef>
351
+ <Sublevel>1</Sublevel>
352
+ <SalesTaxCodeRef>
353
+ <ListID>10000-999021789</ListID>
354
+ <FullName>Tax</FullName>
355
+ </SalesTaxCodeRef>
356
+ <SalesDesc>1/2" Vinyl Irrigation Line</SalesDesc>
357
+ <SalesPrice>0.15</SalesPrice>
358
+ <IncomeAccountRef>
359
+ <ListID>690001-1071523679</ListID>
360
+ <FullName>Landscaping Services:Job Materials:Misc Materials</FullName>
361
+ </IncomeAccountRef>
362
+ <PurchaseDesc>1/2" Vinyl Irrigation Line</PurchaseDesc>
363
+ <PurchaseCost>0.12</PurchaseCost>
364
+ <COGSAccountRef>
365
+ <ListID>240000-934380913</ListID>
366
+ <FullName>Cost of Goods Sold</FullName>
367
+ </COGSAccountRef>
368
+ <AssetAccountRef>
369
+ <ListID>60000-934380912</ListID>
370
+ <FullName>Inventory Asset</FullName>
371
+ </AssetAccountRef>
372
+ <ReorderPoint>1500</ReorderPoint>
373
+ <QuantityOnHand>1783</QuantityOnHand>
374
+ <AverageCost>0.12</AverageCost>
375
+ <QuantityOnOrder>0</QuantityOnOrder>
376
+ <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
377
+ </ItemInventoryRet>
378
+ <ItemInventoryRet>
379
+ <ListID>260000-1071523858</ListID>
380
+ <TimeCreated>2003-12-15T13:30:58-08:00</TimeCreated>
381
+ <TimeModified>2003-12-15T13:37:52-08:00</TimeModified>
382
+ <EditSequence>1071524272</EditSequence>
383
+ <Name>1/4" Line</Name>
384
+ <FullName>Irrigation Hose:1/4" Line</FullName>
385
+ <IsActive>true</IsActive>
386
+ <ParentRef>
387
+ <ListID>250000-1071523682</ListID>
388
+ <FullName>Irrigation Hose</FullName>
389
+ </ParentRef>
390
+ <Sublevel>1</Sublevel>
391
+ <SalesTaxCodeRef>
392
+ <ListID>10000-999021789</ListID>
393
+ <FullName>Tax</FullName>
394
+ </SalesTaxCodeRef>
395
+ <SalesDesc>1/4" Vinyl Irrigation Line</SalesDesc>
396
+ <SalesPrice>0.10</SalesPrice>
397
+ <IncomeAccountRef>
398
+ <ListID>690001-1071523679</ListID>
399
+ <FullName>Landscaping Services:Job Materials:Misc Materials</FullName>
400
+ </IncomeAccountRef>
401
+ <PurchaseDesc>1/4" Vinyl Irrigation Line</PurchaseDesc>
402
+ <PurchaseCost>0.07</PurchaseCost>
403
+ <COGSAccountRef>
404
+ <ListID>240000-934380913</ListID>
405
+ <FullName>Cost of Goods Sold</FullName>
406
+ </COGSAccountRef>
407
+ <AssetAccountRef>
408
+ <ListID>60000-934380912</ListID>
409
+ <FullName>Inventory Asset</FullName>
410
+ </AssetAccountRef>
411
+ <ReorderPoint>500</ReorderPoint>
412
+ <QuantityOnHand>1235</QuantityOnHand>
413
+ <AverageCost>0.07</AverageCost>
414
+ <QuantityOnOrder>0</QuantityOnOrder>
415
+ <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
416
+ </ItemInventoryRet>
417
+ <ItemInventoryRet>
418
+ <ListID>280000-1071524260</ListID>
419
+ <TimeCreated>2003-12-15T13:37:40-08:00</TimeCreated>
420
+ <TimeModified>2003-12-15T13:37:40-08:00</TimeModified>
421
+ <EditSequence>1071524260</EditSequence>
422
+ <Name>3/4" Line</Name>
423
+ <FullName>Irrigation Hose:3/4" Line</FullName>
424
+ <IsActive>true</IsActive>
425
+ <ParentRef>
426
+ <ListID>250000-1071523682</ListID>
427
+ <FullName>Irrigation Hose</FullName>
428
+ </ParentRef>
429
+ <Sublevel>1</Sublevel>
430
+ <SalesTaxCodeRef>
431
+ <ListID>10000-999021789</ListID>
432
+ <FullName>Tax</FullName>
433
+ </SalesTaxCodeRef>
434
+ <SalesDesc>3/4" Vinyl Irrigation Line</SalesDesc>
435
+ <SalesPrice>0.27</SalesPrice>
436
+ <IncomeAccountRef>
437
+ <ListID>690001-1071523679</ListID>
438
+ <FullName>Landscaping Services:Job Materials:Misc Materials</FullName>
439
+ </IncomeAccountRef>
440
+ <PurchaseDesc>3/4" Vinyl Irrigation Line</PurchaseDesc>
441
+ <PurchaseCost>0.18</PurchaseCost>
442
+ <COGSAccountRef>
443
+ <ListID>240000-934380913</ListID>
444
+ <FullName>Cost of Goods Sold</FullName>
445
+ </COGSAccountRef>
446
+ <AssetAccountRef>
447
+ <ListID>60000-934380912</ListID>
448
+ <FullName>Inventory Asset</FullName>
449
+ </AssetAccountRef>
450
+ <ReorderPoint>1500</ReorderPoint>
451
+ <QuantityOnHand>2670</QuantityOnHand>
452
+ <AverageCost>0.18</AverageCost>
453
+ <QuantityOnOrder>0</QuantityOnOrder>
454
+ <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
455
+ </ItemInventoryRet>
456
+ <ItemInventoryRet>
457
+ <ListID>60000-934380927</ListID>
458
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
459
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
460
+ <EditSequence>934380927</EditSequence>
461
+ <Name>Lighting</Name>
462
+ <FullName>Lighting</FullName>
463
+ <IsActive>true</IsActive>
464
+ <Sublevel>0</Sublevel>
465
+ <SalesTaxCodeRef>
466
+ <ListID>10000-999021789</ListID>
467
+ <FullName>Tax</FullName>
468
+ </SalesTaxCodeRef>
469
+ <SalesDesc>Garden Lighting</SalesDesc>
470
+ <SalesPrice>0.00</SalesPrice>
471
+ <IncomeAccountRef>
472
+ <ListID>1B0000-934380913</ListID>
473
+ <FullName>Landscaping Services:Job Materials:Fountains &amp; Garden Lighting</FullName>
474
+ </IncomeAccountRef>
475
+ <PurchaseDesc>Garden Lighting</PurchaseDesc>
476
+ <PurchaseCost>0.00</PurchaseCost>
477
+ <COGSAccountRef>
478
+ <ListID>240000-934380913</ListID>
479
+ <FullName>Cost of Goods Sold</FullName>
480
+ </COGSAccountRef>
481
+ <AssetAccountRef>
482
+ <ListID>60000-934380912</ListID>
483
+ <FullName>Inventory Asset</FullName>
484
+ </AssetAccountRef>
485
+ <QuantityOnHand>94</QuantityOnHand>
486
+ <AverageCost>14.80</AverageCost>
487
+ <QuantityOnOrder>28</QuantityOnOrder>
488
+ <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
489
+ </ItemInventoryRet>
490
+ <ItemInventoryRet>
491
+ <ListID>70000-934380927</ListID>
492
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
493
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
494
+ <EditSequence>934380927</EditSequence>
495
+ <Name>Pump</Name>
496
+ <FullName>Pump</FullName>
497
+ <IsActive>true</IsActive>
498
+ <Sublevel>0</Sublevel>
499
+ <SalesTaxCodeRef>
500
+ <ListID>10000-999021789</ListID>
501
+ <FullName>Tax</FullName>
502
+ </SalesTaxCodeRef>
503
+ <SalesDesc>Fountain pump</SalesDesc>
504
+ <SalesPrice>75.00</SalesPrice>
505
+ <IncomeAccountRef>
506
+ <ListID>1B0000-934380913</ListID>
507
+ <FullName>Landscaping Services:Job Materials:Fountains &amp; Garden Lighting</FullName>
508
+ </IncomeAccountRef>
509
+ <PurchaseDesc>Fountain pump #198-30</PurchaseDesc>
510
+ <PurchaseCost>56.00</PurchaseCost>
511
+ <COGSAccountRef>
512
+ <ListID>240000-934380913</ListID>
513
+ <FullName>Cost of Goods Sold</FullName>
514
+ </COGSAccountRef>
515
+ <AssetAccountRef>
516
+ <ListID>60000-934380912</ListID>
517
+ <FullName>Inventory Asset</FullName>
518
+ </AssetAccountRef>
519
+ <QuantityOnHand>48</QuantityOnHand>
520
+ <AverageCost>53.93</AverageCost>
521
+ <QuantityOnOrder>0</QuantityOnOrder>
522
+ <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
523
+ </ItemInventoryRet>
524
+ <ItemInventoryRet>
525
+ <ListID>80000-934380927</ListID>
526
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
527
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
528
+ <EditSequence>934380927</EditSequence>
529
+ <Name>Soil</Name>
530
+ <FullName>Soil</FullName>
531
+ <IsActive>true</IsActive>
532
+ <Sublevel>0</Sublevel>
533
+ <SalesTaxCodeRef>
534
+ <ListID>10000-999021789</ListID>
535
+ <FullName>Tax</FullName>
536
+ </SalesTaxCodeRef>
537
+ <SalesDesc>Soil, 2 cubic ft bag</SalesDesc>
538
+ <SalesPrice>6.75</SalesPrice>
539
+ <IncomeAccountRef>
540
+ <ListID>1C0000-934380913</ListID>
541
+ <FullName>Landscaping Services:Job Materials:Plants and Sod</FullName>
542
+ </IncomeAccountRef>
543
+ <PurchaseDesc>Soil, 2 cubic ft bag</PurchaseDesc>
544
+ <PurchaseCost>5.30</PurchaseCost>
545
+ <COGSAccountRef>
546
+ <ListID>240000-934380913</ListID>
547
+ <FullName>Cost of Goods Sold</FullName>
548
+ </COGSAccountRef>
549
+ <PrefVendorRef>
550
+ <ListID>10000-934380927</ListID>
551
+ <FullName>Middlefield Nursery</FullName>
552
+ </PrefVendorRef>
553
+ <AssetAccountRef>
554
+ <ListID>60000-934380912</ListID>
555
+ <FullName>Inventory Asset</FullName>
556
+ </AssetAccountRef>
557
+ <ReorderPoint>25</ReorderPoint>
558
+ <QuantityOnHand>0</QuantityOnHand>
559
+ <AverageCost>5.30</AverageCost>
560
+ <QuantityOnOrder>6</QuantityOnOrder>
561
+ <QuantityOnSalesOrder>10</QuantityOnSalesOrder>
562
+ </ItemInventoryRet>
563
+ <ItemInventoryRet>
564
+ <ListID>90000-934380927</ListID>
565
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
566
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
567
+ <EditSequence>934380927</EditSequence>
568
+ <Name>Sprinkler Hds</Name>
569
+ <FullName>Sprinkler Hds</FullName>
570
+ <IsActive>true</IsActive>
571
+ <Sublevel>0</Sublevel>
572
+ <SalesTaxCodeRef>
573
+ <ListID>10000-999021789</ListID>
574
+ <FullName>Tax</FullName>
575
+ </SalesTaxCodeRef>
576
+ <SalesDesc>Sprinkler heads</SalesDesc>
577
+ <SalesPrice>0.00</SalesPrice>
578
+ <IncomeAccountRef>
579
+ <ListID>1D0000-934380913</ListID>
580
+ <FullName>Landscaping Services:Job Materials:Sprinklers &amp; Drip systems</FullName>
581
+ </IncomeAccountRef>
582
+ <PurchaseDesc>Sprinkler head #BLS9081-09</PurchaseDesc>
583
+ <PurchaseCost>0.00</PurchaseCost>
584
+ <COGSAccountRef>
585
+ <ListID>240000-934380913</ListID>
586
+ <FullName>Cost of Goods Sold</FullName>
587
+ </COGSAccountRef>
588
+ <AssetAccountRef>
589
+ <ListID>60000-934380912</ListID>
590
+ <FullName>Inventory Asset</FullName>
591
+ </AssetAccountRef>
592
+ <QuantityOnHand>69</QuantityOnHand>
593
+ <AverageCost>6.38</AverageCost>
594
+ <QuantityOnOrder>36</QuantityOnOrder>
595
+ <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
596
+ </ItemInventoryRet>
597
+ <ItemInventoryRet>
598
+ <ListID>A0000-934380927</ListID>
599
+ <TimeCreated>1999-08-11T07:15:27-08:00</TimeCreated>
600
+ <TimeModified>1999-08-11T07:15:27-08:00</TimeModified>
601
+ <EditSequence>934380927</EditSequence>
602
+ <Name>Sprkl pipes</Name>
603
+ <FullName>Sprkl pipes</FullName>
604
+ <IsActive>true</IsActive>
605
+ <Sublevel>0</Sublevel>
606
+ <SalesTaxCodeRef>
607
+ <ListID>10000-999021789</ListID>
608
+ <FullName>Tax</FullName>
609
+ </SalesTaxCodeRef>
610
+ <SalesDesc>Plastic sprinkler piping</SalesDesc>
611
+ <SalesPrice>2.75</SalesPrice>
612
+ <IncomeAccountRef>
613
+ <ListID>1D0000-934380913</ListID>
614
+ <FullName>Landscaping Services:Job Materials:Sprinklers &amp; Drip systems</FullName>
615
+ </IncomeAccountRef>
616
+ <PurchaseDesc>Plastic sprinkler piping #1098-20</PurchaseDesc>
617
+ <PurchaseCost>2.10</PurchaseCost>
618
+ <COGSAccountRef>
619
+ <ListID>240000-934380913</ListID>
620
+ <FullName>Cost of Goods Sold</FullName>
621
+ </COGSAccountRef>
622
+ <AssetAccountRef>
623
+ <ListID>60000-934380912</ListID>
624
+ <FullName>Inventory Asset</FullName>
625
+ </AssetAccountRef>
626
+ <ReorderPoint>250</ReorderPoint>
627
+ <QuantityOnHand>826</QuantityOnHand>
628
+ <AverageCost>2.10</AverageCost>
629
+ <QuantityOnOrder>115</QuantityOnOrder>
630
+ <QuantityOnSalesOrder>0</QuantityOnSalesOrder>
631
+ </ItemInventoryRet>
632
+ </ItemQueryRs>
633
+ </QBXMLMsgsRs>
634
+ </QBXML>