mirror of
https://github.com/Orange-OpenSource/hurl.git
synced 2024-11-23 09:44:22 +03:00
Refacto for XML parsing.
Previously, the parser was rather raw: we processed the buffer bytes by bytes, checking if the buffer was a valid XML file. Now, we use libxml SAX parser to detect the end of the XML.
This commit is contained in:
parent
b1bb431772
commit
f82ed05d9a
24
Cargo.lock
generated
24
Cargo.lock
generated
@ -563,8 +563,8 @@ name = "hurl_core"
|
||||
version = "4.1.0-SNAPSHOT"
|
||||
dependencies = [
|
||||
"float-cmp",
|
||||
"libxml",
|
||||
"regex",
|
||||
"sxd-document",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -810,12 +810,6 @@ version = "2.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
|
||||
|
||||
[[package]]
|
||||
name = "peresil"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f658886ed52e196e850cfbbfddab9eaa7f6d90dd0929e264c31e5cec07e09e57"
|
||||
|
||||
[[package]]
|
||||
name = "pkg-config"
|
||||
version = "0.3.27"
|
||||
@ -1091,16 +1085,6 @@ version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
|
||||
|
||||
[[package]]
|
||||
name = "sxd-document"
|
||||
version = "0.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "94d82f37be9faf1b10a82c4bd492b74f698e40082f0f40de38ab275f31d42078"
|
||||
dependencies = [
|
||||
"peresil",
|
||||
"typed-arena",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.32"
|
||||
@ -1171,12 +1155,6 @@ dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "typed-arena"
|
||||
version = "1.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d"
|
||||
|
||||
[[package]]
|
||||
name = "typenum"
|
||||
version = "1.16.0"
|
||||
|
@ -1,2 +0,0 @@
|
||||
curl 'http://localhost:8000/post-xml' --header 'Content-Type: application/xml' --data $'<?xml version="1.0"?>\n<drink>café</drink>'
|
||||
curl 'http://localhost:8000/post-xml-no-prolog' --header 'Content-Type: application/xml' --data '<drink>café</drink>'
|
@ -1,15 +1,626 @@
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"></span><span class="comment"># POST the following XML</span>
|
||||
<span class="line"></span><span class="comment"># <?xml version="1.0"?></span>
|
||||
<span class="line"></span><span class="comment"># <drink>café</drink></span>
|
||||
<span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/post-xml</span></span>
|
||||
<pre><code class="language-hurl"><span class="hurl-entry"><span class="request"><span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/post-xml</span></span>
|
||||
<span class="xml"><span class="line"><?xml version="1.0"?></span>
|
||||
<span class="line"><drink>café</drink></span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/post-xml-no-prolog</span></span>
|
||||
<span class="xml"><span class="line"><drink>café</drink></span></span>
|
||||
</span><span class="response"><span class="line"></span>
|
||||
<span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span><span class="hurl-entry"><span class="request"><span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span class="method">POST</span> <span class="url">http://localhost:8000/post-xml-large</span></span>
|
||||
<span class="xml"><span class="line"><?xml version='1.0' ?></span>
|
||||
<span class="line"><root></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name>MH of San Francisco,</bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items></span>
|
||||
<span class="line"> 8</span>
|
||||
<span class="line"> </num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at>$9</started_at></span>
|
||||
<span class="line"> <bid_increment>$10</bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed>Mon Nov 27, 2:00 pm PT</closed></span>
|
||||
<span class="line"> <id_num></span>
|
||||
<span class="line"> 3699803</span>
|
||||
<span class="line"> </id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount></span>
|
||||
<span class="line"> $2459</span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity>1</quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory></memory></span>
|
||||
<span class="line"> <hard_drive></hard_drive></span>
|
||||
<span class="line"> <cpu></span>
|
||||
<span class="line"> 900MHz</span>
|
||||
<span class="line"> </cpu></span>
|
||||
<span class="line"> <brand>HP Pavilion</brand></span>
|
||||
<span class="line"> <description>The Pavilion 9780C gives you</span>
|
||||
<span class="line"> everything you need in a home</span>
|
||||
<span class="line"> PC, from the exhilarating</span>
|
||||
<span class="line"> multimedia experience of DVD to</span>
|
||||
<span class="line"> the customized music-making</span>
|
||||
<span class="line"> abilities of the HP CD-Writer</span>
|
||||
<span class="line"> Plus - it's all in a hot</span>
|
||||
<span class="line"> translucent blue case! Monitor</span>
|
||||
<span class="line"> not included.</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name></bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items></num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at></started_at></span>
|
||||
<span class="line"> <bid_increment></bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed></closed></span>
|
||||
<span class="line"> <id_num></id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount></span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity></quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory></memory></span>
|
||||
<span class="line"> <hard_drive></hard_drive></span>
|
||||
<span class="line"> <cpu></cpu></span>
|
||||
<span class="line"> <brand></brand></span>
|
||||
<span class="line"> <description></span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name></bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items></num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at></started_at></span>
|
||||
<span class="line"> <bid_increment></bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed></closed></span>
|
||||
<span class="line"> <id_num></id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount></span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity></quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory></memory></span>
|
||||
<span class="line"> <hard_drive></hard_drive></span>
|
||||
<span class="line"> <cpu></cpu></span>
|
||||
<span class="line"> <brand></brand></span>
|
||||
<span class="line"> <description></span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name>tx of Santa Clara</seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name></bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items>2</num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at></started_at></span>
|
||||
<span class="line"> <bid_increment></bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed>Mon Nov 27, 2:30 pm PT</closed></span>
|
||||
<span class="line"> <id_num></span>
|
||||
<span class="line"> 3699948</span>
|
||||
<span class="line"> </id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount></span>
|
||||
<span class="line"> $3837</span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity>2</quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory>128MB high-performance PC133 ECC SDRAM Maximum: 4GB memory</span>
|
||||
<span class="line"> capacity (3.3GB maximum usable memory)</span>
|
||||
<span class="line"> </memory></span>
|
||||
<span class="line"> <hard_drive>Open bay - none installed or includedSupports 9.1GB and 18.2GB 7,200rpm Ultra2</span>
|
||||
<span class="line"> SCSI disk drivesSupports 9.1GB, 18.2GB, and 36.4GB 10,000rpm Ultra2 SCSI disk</span>
|
||||
<span class="line"> drives</span>
|
||||
<span class="line"> </hard_drive></span>
|
||||
<span class="line"> <cpu>Intel Pentium III 800MHz</cpu></span>
|
||||
<span class="line"> <brand>Hewlett Packard NetServer LH3000 Pentium III 800MHz</span>
|
||||
<span class="line"> 128MB RAM/Open Bay/32X CD/No OS</span>
|
||||
<span class="line"> </brand></span>
|
||||
<span class="line"> <description></span>
|
||||
<span class="line"> HP NetServer LH 3000 Pentium III 800MHzThis rack mount HP</span>
|
||||
<span class="line"> NetServer LH 3000 brings higher performance and reliability to</span>
|
||||
<span class="line"> meet your demanding departmental server requirements.</span>
|
||||
<span class="line"> Incorporating performance, storage, and high-availability</span>
|
||||
<span class="line"> technologies, this workhorse is loaded with features you'd</span>
|
||||
<span class="line"> expect only in high-end servers.Key Features At a Glance:</span>
|
||||
<span class="line"> Extraordinary performance -- dual Intel Pentium III processor</span>
|
||||
<span class="line"> capability (one 800MHz processor included)- with 133MHz front</span>
|
||||
<span class="line"> side bus, PC 133MHz ECC SDRAM, and performance-boosting</span>
|
||||
<span class="line"> integrated RAID controller. Best-in-class reliability and</span>
|
||||
<span class="line"> uptime -- with fully hot-swappable/hot-pluggable components,</span>
|
||||
<span class="line"> including disk drives, power supplies, fans, and hot-plug PCI</span>
|
||||
<span class="line"> slots. Includes widely adopted, fault-tolerant RAID 5</span>
|
||||
<span class="line"> technology-using an embedded, dual-channel NetRAID controller</span>
|
||||
<span class="line"> with optional battery backup, hardware-based parity (XOR)</span>
|
||||
<span class="line"> logic, and 32MB cache-expandable to 128MB. Excellent</span>
|
||||
<span class="line"> investment protection -- the HP NetServer LH 3000's design</span>
|
||||
<span class="line"> makes it easily upgradable as higher scalability Xeon servers</span>
|
||||
<span class="line"> and new processor enhancements become available. HP OpenView</span>
|
||||
<span class="line"> ManageX Event Manager -- for simplified NOS and high</span>
|
||||
<span class="line"> availability system management. Intelligent management -- a</span>
|
||||
<span class="line"> comprehensive tool set to monitor your server hardware and</span>
|
||||
<span class="line"> software from anywhere, anytime. Simple installation-rack</span>
|
||||
<span class="line"> mount form factor version.</span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name>LW of Sugar Land</bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items>1</num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at></span>
|
||||
<span class="line"> $9</span>
|
||||
<span class="line"> </started_at></span>
|
||||
<span class="line"> <bid_increment></span>
|
||||
<span class="line"> $20</span>
|
||||
<span class="line"> </bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed></span>
|
||||
<span class="line"> Mon Nov 27, 2:30 pm PT</span>
|
||||
<span class="line"> </closed></span>
|
||||
<span class="line"> <id_num>3699893</id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount>$2392</span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity></quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory></memory></span>
|
||||
<span class="line"> <hard_drive></hard_drive></span>
|
||||
<span class="line"> <cpu></cpu></span>
|
||||
<span class="line"> <brand>Hewlett Packard NetServe</brand></span>
|
||||
<span class="line"> <description>Refurbished and warranted by</span>
|
||||
<span class="line"> manufacturer! Dual processing</span>
|
||||
<span class="line"> capability (one 800MHz Pentium</span>
|
||||
<span class="line"> III processor provided)!!!</span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name>BT of Los Angeles</bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items>2</num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at>$9</started_at></span>
|
||||
<span class="line"> <bid_increment>$20</bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed>Mon Nov 27, 2:30 pm PT</closed></span>
|
||||
<span class="line"> <id_num></span>
|
||||
<span class="line"> 3699928</span>
|
||||
<span class="line"> </id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount></span>
|
||||
<span class="line"> $2475</span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity></quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory>AM memory</span>
|
||||
<span class="line"> expandable to 4GB (128MB</span>
|
||||
<span class="line"> provided)</span>
|
||||
<span class="line"> </memory></span>
|
||||
<span class="line"> <hard_drive></hard_drive></span>
|
||||
<span class="line"> <cpu>800MHz Pentium III processor</cpu></span>
|
||||
<span class="line"> <brand></brand></span>
|
||||
<span class="line"> <description>Dual processing capability(one</span>
|
||||
<span class="line"> 800MHz Pentium III processor</span>
|
||||
<span class="line"> providedd)!! RAM memory</span>
|
||||
<span class="line"> expandable to 4GB (128MB</span>
|
||||
<span class="line"> provided)!! Refurbished and</span>
|
||||
<span class="line"> warranted by manufacturer!!HP NetServer LC 2000 Pentium III 800MHz -- The rock-solid</span>
|
||||
<span class="line"> workgroup server your growing business can depend on --This HP</span>
|
||||
<span class="line"> NetServer LC 2000 offers an innovative solution that delivers</span>
|
||||
<span class="line"> top quality to corporate workgroups, branch offices and</span>
|
||||
<span class="line"> quickly-growing small businesses with: High tech and high</span>
|
||||
<span class="line"> touch -- designed to be simple to install, configure and</span>
|
||||
<span class="line"> upgrade, all HP NetServer LC 2000 components are easily</span>
|
||||
<span class="line"> accessible and designed for tool-less service -- accented by</span>
|
||||
<span class="line"> color-coded "touch points" High availability -- created to</span>
|
||||
<span class="line"> deliver the most essential uptime-protecting technologies to</span>
|
||||
<span class="line"> meet your computing needs. With more hot-swappable and</span>
|
||||
<span class="line"> redundant components in a workgroup server, the LC 2000</span>
|
||||
<span class="line"> creates a super-reliable foundation for the growing network</span>
|
||||
<span class="line"> Intelligent management -- the HP NetServer LC 2000 is</span>
|
||||
<span class="line"> complemented by a hardware and NOS management suite that</span>
|
||||
<span class="line"> combines unmatched flexibility with simplicity for precise</span>
|
||||
<span class="line"> control. HP management tools ensure that your workgroup and</span>
|
||||
<span class="line"> remote office IT professionals can manage the LC 2000 from any</span>
|
||||
<span class="line"> location. Best-in-class uptime protection -- with up to six</span>
|
||||
<span class="line"> hot-swappable disk drive bays, standard redundant,</span>
|
||||
<span class="line"> hot-swappable fans, optional hot-swappable redundant power</span>
|
||||
<span class="line"> supplies, support for redundant NICS, and duplexing Freedom</span>
|
||||
<span class="line"> to expand -- with dual processing capability (one 800MHz</span>
|
||||
<span class="line"> Pentium III processor provided), capacity for up to 4GB SDRAM</span>
|
||||
<span class="line"> (128MB standard), expandable storage capability and six open</span>
|
||||
<span class="line"> PCI slots, the HP NetServer LC 2000 offers room for growth</span>
|
||||
<span class="line"> that is unprecedented in a workgroup serverThis LC 2000</span>
|
||||
<span class="line"> provides top quality in a server for corporate workgroups,</span>
|
||||
<span class="line"> branch offices and quickly growing small businesses that want</span>
|
||||
<span class="line"> enterprise-level system reliability features. Designed with</span>
|
||||
<span class="line"> simplicity for easy installation, the HP NetServer LC 2000</span>
|
||||
<span class="line"> meets the demands of your quickly growing business today and</span>
|
||||
<span class="line"> offers the capability to expand as your workplace computing</span>
|
||||
<span class="line"> needs increase in the</span>
|
||||
<span class="line"> future.********************************** -- F E A T U R E S A</span>
|
||||
<span class="line"> T A GLANCE --PROCESSOR:One Intel Pentium III 800MHz (dual</span>
|
||||
<span class="line"> capability with upgrade) with 133MHz front-side bus256K on-die</span>
|
||||
<span class="line"> write-back cacheMEMORY: Standard: 128MB SDRAM PC-133 DIMM per</span>
|
||||
<span class="line"> slotMaximum: 4GB Four DIMM sockets HARD DISK DRIVE : Open</span>
|
||||
<span class="line"> baySTORAGE : Diskette drive: 3.5" 1.44MBCD-ROM drive: Maximum</span>
|
||||
<span class="line"> 32X IDENETWORK CONTROLLER:Integrated 10/100TX NIC (supports</span>
|
||||
<span class="line"> redundant NICs)BUS SPEED:133MHz front-side bus EXPANSION</span>
|
||||
<span class="line"> SLOTS:Two 64-bit and four 32-bit PCI slotsPeer 32-bit/64-bit</span>
|
||||
<span class="line"> PCI buses, both at 33MHzPORTS:One serial portOne 25-pin</span>
|
||||
<span class="line"> parallel portOne SCSI knockout port for external</span>
|
||||
<span class="line"> connectionsOne server management port (serial)Video</span>
|
||||
<span class="line"> port-SVGAMini-DIN keyboard and mouse portsSTORAGE</span>
|
||||
<span class="line"> CONTROLLER:Embedded dual channel Ultra-2 SCSIVIDEO:Embedded</span>
|
||||
<span class="line"> ATI Rage IIc video controller1024x768, 64K color at 75Hz2MB</span>
|
||||
<span class="line"> SGRAMPOWER SUPPLY:349 Watts (Nominal, 100-127/200-240V AC,</span>
|
||||
<span class="line"> 50/60Hz; range, 90-140/180-264V AC, 47/63Hz)FORM</span>
|
||||
<span class="line"> 648mm (25.5") without bezelOPERATING SYSTEM:None installed or</span>
|
||||
<span class="line"> includedOPTIONAL OPERATING SYSTEMS SUPPORTED:Microsoft Windows</span>
|
||||
<span class="line"> NT 4.0Windows2000Novell NetWare 4.2, 5.0Red Hat LinuxSCO</span>
|
||||
<span class="line"> OpenServerUnixWare****************************************HP</span>
|
||||
<span class="line"> NetServer LC 2000 -- the rock-solid workgroup server your</span>
|
||||
<span class="line"> growing business can depend on!</span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name>RP of Cleveland</bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items>1</num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at>$9</started_at></span>
|
||||
<span class="line"> <bid_increment></span>
|
||||
<span class="line"> $10</span>
|
||||
<span class="line"> </bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed>Mon Nov 27, 3:00 pm PT</closed></span>
|
||||
<span class="line"> <id_num></span>
|
||||
<span class="line"> 3697285</span>
|
||||
<span class="line"> </id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount>$3000</span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity></quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory>28MB PC133 SDRAM 168-Pin Memory, 3.3 volt Non-ECC, Non-Buffered, 7.5ns</span>
|
||||
<span class="line"> Speed</span>
|
||||
<span class="line"> </memory></span>
|
||||
<span class="line"> <hard_drive>30GB 7200 RPM IDE Hard Drive with UltraDMA 66 interface to ensure maximum data</span>
|
||||
<span class="line"> throughput</span>
|
||||
<span class="line"> </hard_drive></span>
|
||||
<span class="line"> <cpu>III 800MHz Processor with 133MHz Bus</cpu></span>
|
||||
<span class="line"> <brand></brand></span>
|
||||
<span class="line"> <description>Elite PC PIII 800MHz 128MB RAM 30GB HD 10X DVD</span>
|
||||
<span class="line"> 32MB VID/56K/NIC/3D SND/No OS</span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name></bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items></num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at></started_at></span>
|
||||
<span class="line"> <bid_increment></bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed></closed></span>
|
||||
<span class="line"> <id_num></id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount></span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity></quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory></memory></span>
|
||||
<span class="line"> <hard_drive></hard_drive></span>
|
||||
<span class="line"> <cpu></cpu></span>
|
||||
<span class="line"> <brand></brand></span>
|
||||
<span class="line"> <description></span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name></bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items></num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at></started_at></span>
|
||||
<span class="line"> <bid_increment></bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed></closed></span>
|
||||
<span class="line"> <id_num></id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount></span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity></quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory></memory></span>
|
||||
<span class="line"> <hard_drive></hard_drive></span>
|
||||
<span class="line"> <cpu></cpu></span>
|
||||
<span class="line"> <brand></brand></span>
|
||||
<span class="line"> <description></span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name></bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items></num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at></started_at></span>
|
||||
<span class="line"> <bid_increment></bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed></closed></span>
|
||||
<span class="line"> <id_num></id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount></span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity></quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory></memory></span>
|
||||
<span class="line"> <hard_drive></hard_drive></span>
|
||||
<span class="line"> <cpu></cpu></span>
|
||||
<span class="line"> <brand></brand></span>
|
||||
<span class="line"> <description></span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"> <listing></span>
|
||||
<span class="line"> <seller_info></span>
|
||||
<span class="line"> <seller_name></seller_name></span>
|
||||
<span class="line"> <seller_rating></seller_rating></span>
|
||||
<span class="line"> </seller_info></span>
|
||||
<span class="line"> <payment_types></span>
|
||||
<span class="line"> </payment_types></span>
|
||||
<span class="line"> <shipping_info></span>
|
||||
<span class="line"> </shipping_info></span>
|
||||
<span class="line"> <buyer_protection_info></span>
|
||||
<span class="line"> </buyer_protection_info></span>
|
||||
<span class="line"> <auction_info></span>
|
||||
<span class="line"> <current_bid></current_bid></span>
|
||||
<span class="line"> <time_left></time_left></span>
|
||||
<span class="line"> <high_bidder></span>
|
||||
<span class="line"> <bidder_name></bidder_name></span>
|
||||
<span class="line"> <bidder_rating></bidder_rating></span>
|
||||
<span class="line"> </high_bidder></span>
|
||||
<span class="line"> <num_items></num_items></span>
|
||||
<span class="line"> <num_bids></num_bids></span>
|
||||
<span class="line"> <started_at></started_at></span>
|
||||
<span class="line"> <bid_increment></bid_increment></span>
|
||||
<span class="line"> <location></location></span>
|
||||
<span class="line"> <opened></opened></span>
|
||||
<span class="line"> <closed></closed></span>
|
||||
<span class="line"> <id_num></id_num></span>
|
||||
<span class="line"> <notes></notes></span>
|
||||
<span class="line"> </auction_info></span>
|
||||
<span class="line"> <bid_history></span>
|
||||
<span class="line"> <highest_bid_amount></span>
|
||||
<span class="line"> </highest_bid_amount></span>
|
||||
<span class="line"> <quantity></quantity></span>
|
||||
<span class="line"> </bid_history></span>
|
||||
<span class="line"> <item_info></span>
|
||||
<span class="line"> <memory></memory></span>
|
||||
<span class="line"> <hard_drive></hard_drive></span>
|
||||
<span class="line"> <cpu></cpu></span>
|
||||
<span class="line"> <brand></brand></span>
|
||||
<span class="line"> <description></span>
|
||||
<span class="line"> </description></span>
|
||||
<span class="line"> </item_info></span>
|
||||
<span class="line"> </listing></span>
|
||||
<span class="line"></root></span></span>
|
||||
</span><span class="response"><span class="line"><span class="version">HTTP</span> <span class="number">200</span></span>
|
||||
</span></span></code></pre>
|
||||
|
@ -1,14 +1,625 @@
|
||||
# POST the following XML
|
||||
# <?xml version="1.0"?>
|
||||
# <drink>café</drink>
|
||||
POST http://localhost:8000/post-xml
|
||||
<?xml version="1.0"?>
|
||||
<drink>café</drink>
|
||||
|
||||
HTTP 200
|
||||
|
||||
|
||||
POST http://localhost:8000/post-xml-no-prolog
|
||||
<drink>café</drink>
|
||||
|
||||
HTTP 200
|
||||
|
||||
|
||||
POST http://localhost:8000/post-xml-large
|
||||
<?xml version='1.0' ?>
|
||||
<root>
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name>MH of San Francisco,</bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items>
|
||||
8
|
||||
</num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at>$9</started_at>
|
||||
<bid_increment>$10</bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed>Mon Nov 27, 2:00 pm PT</closed>
|
||||
<id_num>
|
||||
3699803
|
||||
</id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>
|
||||
$2459
|
||||
</highest_bid_amount>
|
||||
<quantity>1</quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory></memory>
|
||||
<hard_drive></hard_drive>
|
||||
<cpu>
|
||||
900MHz
|
||||
</cpu>
|
||||
<brand>HP Pavilion</brand>
|
||||
<description>The Pavilion 9780C gives you
|
||||
everything you need in a home
|
||||
PC, from the exhilarating
|
||||
multimedia experience of DVD to
|
||||
the customized music-making
|
||||
abilities of the HP CD-Writer
|
||||
Plus - it's all in a hot
|
||||
translucent blue case! Monitor
|
||||
not included.
|
||||
|
||||
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name></bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items></num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at></started_at>
|
||||
<bid_increment></bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed></closed>
|
||||
<id_num></id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>
|
||||
</highest_bid_amount>
|
||||
<quantity></quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory></memory>
|
||||
<hard_drive></hard_drive>
|
||||
<cpu></cpu>
|
||||
<brand></brand>
|
||||
<description>
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name></bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items></num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at></started_at>
|
||||
<bid_increment></bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed></closed>
|
||||
<id_num></id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>
|
||||
</highest_bid_amount>
|
||||
<quantity></quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory></memory>
|
||||
<hard_drive></hard_drive>
|
||||
<cpu></cpu>
|
||||
<brand></brand>
|
||||
<description>
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name>tx of Santa Clara</seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name></bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items>2</num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at></started_at>
|
||||
<bid_increment></bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed>Mon Nov 27, 2:30 pm PT</closed>
|
||||
<id_num>
|
||||
3699948
|
||||
</id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>
|
||||
$3837
|
||||
</highest_bid_amount>
|
||||
<quantity>2</quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory>128MB high-performance PC133 ECC SDRAM Maximum: 4GB memory
|
||||
capacity (3.3GB maximum usable memory)
|
||||
</memory>
|
||||
<hard_drive>Open bay - none installed or includedSupports 9.1GB and 18.2GB 7,200rpm Ultra2
|
||||
SCSI disk drivesSupports 9.1GB, 18.2GB, and 36.4GB 10,000rpm Ultra2 SCSI disk
|
||||
drives
|
||||
</hard_drive>
|
||||
<cpu>Intel Pentium III 800MHz</cpu>
|
||||
<brand>Hewlett Packard NetServer LH3000 Pentium III 800MHz
|
||||
128MB RAM/Open Bay/32X CD/No OS
|
||||
</brand>
|
||||
<description>
|
||||
HP NetServer LH 3000 Pentium III 800MHzThis rack mount HP
|
||||
NetServer LH 3000 brings higher performance and reliability to
|
||||
meet your demanding departmental server requirements.
|
||||
Incorporating performance, storage, and high-availability
|
||||
technologies, this workhorse is loaded with features you'd
|
||||
expect only in high-end servers.Key Features At a Glance:
|
||||
Extraordinary performance -- dual Intel Pentium III processor
|
||||
capability (one 800MHz processor included)- with 133MHz front
|
||||
side bus, PC 133MHz ECC SDRAM, and performance-boosting
|
||||
integrated RAID controller. Best-in-class reliability and
|
||||
uptime -- with fully hot-swappable/hot-pluggable components,
|
||||
including disk drives, power supplies, fans, and hot-plug PCI
|
||||
slots. Includes widely adopted, fault-tolerant RAID 5
|
||||
technology-using an embedded, dual-channel NetRAID controller
|
||||
with optional battery backup, hardware-based parity (XOR)
|
||||
logic, and 32MB cache-expandable to 128MB. Excellent
|
||||
investment protection -- the HP NetServer LH 3000's design
|
||||
makes it easily upgradable as higher scalability Xeon servers
|
||||
and new processor enhancements become available. HP OpenView
|
||||
ManageX Event Manager -- for simplified NOS and high
|
||||
availability system management. Intelligent management -- a
|
||||
comprehensive tool set to monitor your server hardware and
|
||||
software from anywhere, anytime. Simple installation-rack
|
||||
mount form factor version.
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name>LW of Sugar Land</bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items>1</num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at>
|
||||
$9
|
||||
</started_at>
|
||||
<bid_increment>
|
||||
$20
|
||||
</bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed>
|
||||
Mon Nov 27, 2:30 pm PT
|
||||
</closed>
|
||||
<id_num>3699893</id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>$2392
|
||||
</highest_bid_amount>
|
||||
<quantity></quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory></memory>
|
||||
<hard_drive></hard_drive>
|
||||
<cpu></cpu>
|
||||
<brand>Hewlett Packard NetServe</brand>
|
||||
<description>Refurbished and warranted by
|
||||
manufacturer! Dual processing
|
||||
capability (one 800MHz Pentium
|
||||
III processor provided)!!!
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name>BT of Los Angeles</bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items>2</num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at>$9</started_at>
|
||||
<bid_increment>$20</bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed>Mon Nov 27, 2:30 pm PT</closed>
|
||||
<id_num>
|
||||
3699928
|
||||
</id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>
|
||||
$2475
|
||||
</highest_bid_amount>
|
||||
<quantity></quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory>AM memory
|
||||
expandable to 4GB (128MB
|
||||
provided)
|
||||
</memory>
|
||||
<hard_drive></hard_drive>
|
||||
<cpu>800MHz Pentium III processor</cpu>
|
||||
<brand></brand>
|
||||
<description>Dual processing capability(one
|
||||
800MHz Pentium III processor
|
||||
providedd)!! RAM memory
|
||||
expandable to 4GB (128MB
|
||||
provided)!! Refurbished and
|
||||
warranted by manufacturer!!HP NetServer LC 2000 Pentium III 800MHz -- The rock-solid
|
||||
workgroup server your growing business can depend on --This HP
|
||||
NetServer LC 2000 offers an innovative solution that delivers
|
||||
top quality to corporate workgroups, branch offices and
|
||||
quickly-growing small businesses with: High tech and high
|
||||
touch -- designed to be simple to install, configure and
|
||||
upgrade, all HP NetServer LC 2000 components are easily
|
||||
accessible and designed for tool-less service -- accented by
|
||||
color-coded "touch points" High availability -- created to
|
||||
deliver the most essential uptime-protecting technologies to
|
||||
meet your computing needs. With more hot-swappable and
|
||||
redundant components in a workgroup server, the LC 2000
|
||||
creates a super-reliable foundation for the growing network
|
||||
Intelligent management -- the HP NetServer LC 2000 is
|
||||
complemented by a hardware and NOS management suite that
|
||||
combines unmatched flexibility with simplicity for precise
|
||||
control. HP management tools ensure that your workgroup and
|
||||
remote office IT professionals can manage the LC 2000 from any
|
||||
location. Best-in-class uptime protection -- with up to six
|
||||
hot-swappable disk drive bays, standard redundant,
|
||||
hot-swappable fans, optional hot-swappable redundant power
|
||||
supplies, support for redundant NICS, and duplexing Freedom
|
||||
to expand -- with dual processing capability (one 800MHz
|
||||
Pentium III processor provided), capacity for up to 4GB SDRAM
|
||||
(128MB standard), expandable storage capability and six open
|
||||
PCI slots, the HP NetServer LC 2000 offers room for growth
|
||||
that is unprecedented in a workgroup serverThis LC 2000
|
||||
provides top quality in a server for corporate workgroups,
|
||||
branch offices and quickly growing small businesses that want
|
||||
enterprise-level system reliability features. Designed with
|
||||
simplicity for easy installation, the HP NetServer LC 2000
|
||||
meets the demands of your quickly growing business today and
|
||||
offers the capability to expand as your workplace computing
|
||||
needs increase in the
|
||||
future.********************************** -- F E A T U R E S A
|
||||
T A GLANCE --PROCESSOR:One Intel Pentium III 800MHz (dual
|
||||
capability with upgrade) with 133MHz front-side bus256K on-die
|
||||
write-back cacheMEMORY: Standard: 128MB SDRAM PC-133 DIMM per
|
||||
slotMaximum: 4GB Four DIMM sockets HARD DISK DRIVE : Open
|
||||
baySTORAGE : Diskette drive: 3.5" 1.44MBCD-ROM drive: Maximum
|
||||
32X IDENETWORK CONTROLLER:Integrated 10/100TX NIC (supports
|
||||
redundant NICs)BUS SPEED:133MHz front-side bus EXPANSION
|
||||
SLOTS:Two 64-bit and four 32-bit PCI slotsPeer 32-bit/64-bit
|
||||
PCI buses, both at 33MHzPORTS:One serial portOne 25-pin
|
||||
parallel portOne SCSI knockout port for external
|
||||
connectionsOne server management port (serial)Video
|
||||
port-SVGAMini-DIN keyboard and mouse portsSTORAGE
|
||||
CONTROLLER:Embedded dual channel Ultra-2 SCSIVIDEO:Embedded
|
||||
ATI Rage IIc video controller1024x768, 64K color at 75Hz2MB
|
||||
SGRAMPOWER SUPPLY:349 Watts (Nominal, 100-127/200-240V AC,
|
||||
50/60Hz; range, 90-140/180-264V AC, 47/63Hz)FORM
|
||||
648mm (25.5") without bezelOPERATING SYSTEM:None installed or
|
||||
includedOPTIONAL OPERATING SYSTEMS SUPPORTED:Microsoft Windows
|
||||
NT 4.0Windows2000Novell NetWare 4.2, 5.0Red Hat LinuxSCO
|
||||
OpenServerUnixWare****************************************HP
|
||||
NetServer LC 2000 -- the rock-solid workgroup server your
|
||||
growing business can depend on!
|
||||
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name>RP of Cleveland</bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items>1</num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at>$9</started_at>
|
||||
<bid_increment>
|
||||
$10
|
||||
</bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed>Mon Nov 27, 3:00 pm PT</closed>
|
||||
<id_num>
|
||||
3697285
|
||||
</id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>$3000
|
||||
</highest_bid_amount>
|
||||
<quantity></quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory>28MB PC133 SDRAM 168-Pin Memory, 3.3 volt Non-ECC, Non-Buffered, 7.5ns
|
||||
Speed
|
||||
</memory>
|
||||
<hard_drive>30GB 7200 RPM IDE Hard Drive with UltraDMA 66 interface to ensure maximum data
|
||||
throughput
|
||||
</hard_drive>
|
||||
<cpu>III 800MHz Processor with 133MHz Bus</cpu>
|
||||
<brand></brand>
|
||||
<description>Elite PC PIII 800MHz 128MB RAM 30GB HD 10X DVD
|
||||
32MB VID/56K/NIC/3D SND/No OS
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name></bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items></num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at></started_at>
|
||||
<bid_increment></bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed></closed>
|
||||
<id_num></id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>
|
||||
</highest_bid_amount>
|
||||
<quantity></quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory></memory>
|
||||
<hard_drive></hard_drive>
|
||||
<cpu></cpu>
|
||||
<brand></brand>
|
||||
<description>
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name></bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items></num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at></started_at>
|
||||
<bid_increment></bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed></closed>
|
||||
<id_num></id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>
|
||||
</highest_bid_amount>
|
||||
<quantity></quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory></memory>
|
||||
<hard_drive></hard_drive>
|
||||
<cpu></cpu>
|
||||
<brand></brand>
|
||||
<description>
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name></bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items></num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at></started_at>
|
||||
<bid_increment></bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed></closed>
|
||||
<id_num></id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>
|
||||
</highest_bid_amount>
|
||||
<quantity></quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory></memory>
|
||||
<hard_drive></hard_drive>
|
||||
<cpu></cpu>
|
||||
<brand></brand>
|
||||
<description>
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
|
||||
<listing>
|
||||
<seller_info>
|
||||
<seller_name></seller_name>
|
||||
<seller_rating></seller_rating>
|
||||
</seller_info>
|
||||
<payment_types>
|
||||
</payment_types>
|
||||
<shipping_info>
|
||||
</shipping_info>
|
||||
<buyer_protection_info>
|
||||
</buyer_protection_info>
|
||||
<auction_info>
|
||||
<current_bid></current_bid>
|
||||
<time_left></time_left>
|
||||
<high_bidder>
|
||||
<bidder_name></bidder_name>
|
||||
<bidder_rating></bidder_rating>
|
||||
</high_bidder>
|
||||
<num_items></num_items>
|
||||
<num_bids></num_bids>
|
||||
<started_at></started_at>
|
||||
<bid_increment></bid_increment>
|
||||
<location></location>
|
||||
<opened></opened>
|
||||
<closed></closed>
|
||||
<id_num></id_num>
|
||||
<notes></notes>
|
||||
</auction_info>
|
||||
<bid_history>
|
||||
<highest_bid_amount>
|
||||
</highest_bid_amount>
|
||||
<quantity></quantity>
|
||||
</bid_history>
|
||||
<item_info>
|
||||
<memory></memory>
|
||||
<hard_drive></hard_drive>
|
||||
<cpu></cpu>
|
||||
<brand></brand>
|
||||
<description>
|
||||
</description>
|
||||
</item_info>
|
||||
</listing>
|
||||
</root>
|
||||
HTTP 200
|
||||
|
File diff suppressed because one or more lines are too long
@ -19,3 +19,10 @@ def post_xml_no_prolog():
|
||||
s = request.data.decode("utf-8")
|
||||
assert s == """<drink>caf\u00e9</drink>"""
|
||||
return ""
|
||||
|
||||
|
||||
@app.route("/post-xml-large", methods=["POST"])
|
||||
def post_xml_large():
|
||||
s = request.data.decode("utf-8")
|
||||
assert len(s) == 22156
|
||||
return ""
|
||||
|
@ -16,5 +16,5 @@ strict = []
|
||||
|
||||
[dependencies]
|
||||
float-cmp = "0.9.0"
|
||||
sxd-document = "0.3.2"
|
||||
libxml = "0.3.3"
|
||||
regex = "1.9.5"
|
||||
|
@ -15,54 +15,182 @@
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
use sxd_document::parser;
|
||||
use libxml::bindings::{
|
||||
xmlChar, xmlCreatePushParserCtxt, xmlFreeParserCtxt, xmlParseChunk, xmlSAXHandlerPtr,
|
||||
};
|
||||
use std::os::raw::{c_char, c_int, c_void};
|
||||
use std::ptr;
|
||||
|
||||
use crate::ast::Pos;
|
||||
use crate::parser::error::*;
|
||||
use crate::parser::reader::Reader;
|
||||
use crate::parser::ParseResult;
|
||||
|
||||
pub fn parse(reader: &mut Reader) -> ParseResult<String> {
|
||||
let mut buf = String::new();
|
||||
let start = reader.state.clone();
|
||||
match reader.read() {
|
||||
Some('<') => buf.push('<'),
|
||||
|
||||
// We test if our first character is a start of an XML text.
|
||||
// If not, we return immediately a recoverable error.
|
||||
// Otherwise, we start parsing the supposedly XML buffer. Any
|
||||
// subsequent error will be a non recoverable error.
|
||||
let c = reader.peek();
|
||||
match c {
|
||||
Some('<') => {}
|
||||
_ => {
|
||||
return Err(Error {
|
||||
pos: Pos { line: 1, column: 1 },
|
||||
pos: start.pos,
|
||||
recoverable: true,
|
||||
inner: ParseError::Xml,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
loop {
|
||||
match reader.read() {
|
||||
None => {
|
||||
let mut buf = String::new();
|
||||
let mut parser = new_sax_parser();
|
||||
let mut parser_context = ParserContext::new();
|
||||
|
||||
// We use libxml SAX parser to identify the end of the XML body.
|
||||
// We feed the SAX parser chars by chars (Rust char), so chunks are UFT-8 bytes,
|
||||
// 1 byte to 4 bytes long. The detection of the body end is done when receiving a closing
|
||||
// element event by testing the depth of the XML tree.
|
||||
unsafe {
|
||||
let context = xmlCreatePushParserCtxt(
|
||||
&mut parser as xmlSAXHandlerPtr,
|
||||
&mut parser_context as *mut ParserContext as *mut c_void,
|
||||
ptr::null(),
|
||||
0,
|
||||
ptr::null(),
|
||||
);
|
||||
|
||||
while let Some(c) = reader.read() {
|
||||
buf.push(c);
|
||||
|
||||
// We feed the parser chars by chars.
|
||||
// A buffer of length four is large enough to encode any char.
|
||||
let mut bytes = [0u8; 4];
|
||||
let end = reader.is_eof() as c_int;
|
||||
let bytes = c.encode_utf8(&mut bytes);
|
||||
let count = bytes.len() as c_int;
|
||||
let bytes = bytes.as_ptr() as *const c_char;
|
||||
let ret = xmlParseChunk(context, bytes, count, end);
|
||||
if ret != 0 {
|
||||
xmlFreeParserCtxt(context);
|
||||
return Err(Error {
|
||||
pos: start.pos,
|
||||
recoverable: false,
|
||||
inner: ParseError::Xml,
|
||||
});
|
||||
}
|
||||
|
||||
// End of the XML body is detected with a closing element event and depth of the tree.
|
||||
// There is also a closing document event but it's not always raised at the exact
|
||||
// closing `>` position.
|
||||
if std::matches!(parser_context.state, ParserState::EndElement)
|
||||
&& parser_context.depth == 0
|
||||
{
|
||||
break;
|
||||
}
|
||||
Some(c) => {
|
||||
buf.push(c);
|
||||
if c == '>' && is_valid(buf.as_str()) {
|
||||
return Ok(buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
xmlFreeParserCtxt(context);
|
||||
}
|
||||
Err(Error {
|
||||
pos: start.pos,
|
||||
recoverable: false,
|
||||
inner: ParseError::Xml,
|
||||
})
|
||||
|
||||
Ok(buf)
|
||||
}
|
||||
|
||||
fn is_valid(s: &str) -> bool {
|
||||
parser::parse(s).is_ok()
|
||||
/// A context for the SAX parser, containing a `state` and the current tree `depth`.
|
||||
struct ParserContext {
|
||||
depth: usize,
|
||||
state: ParserState,
|
||||
}
|
||||
|
||||
impl ParserContext {
|
||||
fn new() -> ParserContext {
|
||||
ParserContext {
|
||||
depth: 0,
|
||||
state: ParserState::Created,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum ParserState {
|
||||
Created,
|
||||
StartDocument,
|
||||
EndDocument,
|
||||
StartElement,
|
||||
EndElement,
|
||||
}
|
||||
|
||||
fn new_sax_parser() -> libxml::bindings::xmlSAXHandler {
|
||||
libxml::bindings::xmlSAXHandler {
|
||||
internalSubset: None,
|
||||
isStandalone: None,
|
||||
hasInternalSubset: None,
|
||||
hasExternalSubset: None,
|
||||
resolveEntity: None,
|
||||
getEntity: None,
|
||||
entityDecl: None,
|
||||
notationDecl: None,
|
||||
attributeDecl: None,
|
||||
elementDecl: None,
|
||||
unparsedEntityDecl: None,
|
||||
setDocumentLocator: None,
|
||||
startDocument: Some(on_start_document),
|
||||
endDocument: Some(on_end_document),
|
||||
startElement: Some(on_start_element),
|
||||
endElement: Some(on_end_element),
|
||||
reference: None,
|
||||
characters: None,
|
||||
ignorableWhitespace: None,
|
||||
processingInstruction: None,
|
||||
comment: None,
|
||||
warning: None,
|
||||
error: None,
|
||||
fatalError: None,
|
||||
getParameterEntity: None,
|
||||
cdataBlock: None,
|
||||
externalSubset: None,
|
||||
initialized: libxml::bindings::XML_SAX2_MAGIC,
|
||||
_private: ptr::null_mut(),
|
||||
startElementNs: None,
|
||||
endElementNs: None,
|
||||
serror: None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Called when the document start being processed.
|
||||
unsafe extern "C" fn on_start_document(ctx: *mut c_void) {
|
||||
let context: &mut ParserContext = unsafe { &mut *(ctx as *mut ParserContext) };
|
||||
context.state = ParserState::StartDocument;
|
||||
}
|
||||
|
||||
/// Called when the document end has been detected.
|
||||
unsafe extern "C" fn on_end_document(ctx: *mut c_void) {
|
||||
let context: &mut ParserContext = unsafe { &mut *(ctx as *mut ParserContext) };
|
||||
context.state = ParserState::EndDocument;
|
||||
}
|
||||
|
||||
/// Called when an opening tag has been processed.
|
||||
unsafe extern "C" fn on_start_element(
|
||||
ctx: *mut c_void,
|
||||
_name: *const xmlChar,
|
||||
_atts: *mut *const xmlChar,
|
||||
) {
|
||||
let context: &mut ParserContext = unsafe { &mut *(ctx as *mut ParserContext) };
|
||||
context.state = ParserState::StartElement;
|
||||
context.depth += 1;
|
||||
}
|
||||
|
||||
/// Called when the end of an element has been detected.
|
||||
unsafe extern "C" fn on_end_element(ctx: *mut c_void, _name: *const xmlChar) {
|
||||
let context: &mut ParserContext = unsafe { &mut *(ctx as *mut ParserContext) };
|
||||
context.state = ParserState::EndElement;
|
||||
context.depth -= 1;
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::ast::Pos;
|
||||
|
||||
#[test]
|
||||
fn parse_xml_brute_force_errors() {
|
||||
|
Loading…
Reference in New Issue
Block a user