libxml-ruby 2.9.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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>