xmls-3.0.2/0000755000076500000240000000000013215604733011156 5ustar rpgstaffxmls-3.0.2/Changelog0000644000076500000240000000344012731046202012762 0ustar rpgstaff# $Id: Changelog 2269 2016-06-17 19:16:18Z mboldt $ 1.8 * Added optional error suppression when items aren't found. 1.7.1 * Fixed a bug that caused breakage on Lispworks. 1.7 * Added write-prologue and write-prolog. 1.6 1.5 * Added helpers to parse string and integer content in an element. * Now testable with clisp. * Fix unicode bug loading with SBCL. 1.4.1 * Fixed bugs in parsing CDATA that could cause crashes in the parser.# 1.4 * Thanks to Norman Werner, fixed bug in handling of multi-byte characters. 1.3 * Bumped the version to record the presence of the helper functions. 1.2.1, 1.2.2 * Miscellaneous bugfixes, not recorded by anyone. 1.2 * add compilation guard around *whitespace* (5 million people) * generate-xml serializes numbers and symbols automatically (Robert Goldman) 1.1.1 * fix typo in test function guard 1.1 * merge Barry Wilkes patches for ws in attributes * merge Barry Wilkes lispworks compatibility patches * merge Gary King's MCL compatibilty patches * merge Clayton Wheeler's memory optimizations * merge Robert Goldman's Allegro fixes 1.0 * Parse/emit unprintables as entities. * Parse numeric xml entitites thanks to Damien Diederen. * Optionally indent write-xml output. * Fix namespace resolution bug 0.5 * Fix compress-whitespace handling. * Add Damien Diederen's entity-handling patch. 0.4 * Made substantial changes to get xmls working in cmucl and clisp. * Reduced consing again somewhat. 0.3 * Bugfix from Andrew Philpot. * Consing reduced by about 40%. 0.2 * Now skips DTDs. * Roughly seven times faster. * Parses CDATA sections. * Only uses one token of lookahead. * Handles content at the end of the document. 0.1 * First release. xmls-3.0.2/COPYING0000644000076500000240000000301312504367257012215 0ustar rpgstaffCopyright (c) 2003, Miles Egan; Copyright (c) 2004-2015 Robert P. Goldman, Mike Boldt, and SIFT, LLC All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. xmls-3.0.2/fiveam-tests.lisp0000644000076500000240000000540113205332226014450 0ustar rpgstaff(in-package :common-lisp-user) (defpackage xmls-test (:use :common-lisp :fiveam :xmls) ) (in-package :xmls-test) (def-suite xmls-test) (in-suite xmls-test) (test check-cdata-backtrack (is (equalp (make-node :name "name" :children (list "x]")) (parse "")))) (test bigger-check-cdata-backtrack (is (equalp (make-node :name "description" :children (list "Link to Catalog In this sequel to 2010's surprise hit, Greg Heffley, the kid who made \"wimpy\" cool is back in an all-new family comedy based on the best-selling follow-up novel by Jeff Kinney. (Kinney's Wimpy Kid\" series has thus far sold 42 million books.) As he begins seventh grade, Greg and his older brother [...]")) (parse "")))) (test simple-nodelist-translator (is (equalp (nodelist->node (list "description" nil "Link to Catalog In this sequel to 2010's surprise hit, Greg Heffley, the kid who made \"wimpy\" cool is back in an all-new family comedy based on the best-selling follow-up novel by Jeff Kinney. (Kinney's Wimpy Kid\" series has thus far sold 42 million books.) As he begins seventh grade, Greg and his older brother [...]")) (parse "")))) (def-fixture parsed-greeting () (let ((node (with-open-file (str (asdf:system-relative-pathname "xmls" "tests/beep/greeting1.xml") :direction :input) (parse str)))) (&body))) (test check-accessors (with-fixture parsed-greeting () (is (equal "greeting" (node-name node))) (is (= 3 (length (node-children node)))) (is (null (node-attrs node))) (is (equal (list "profile" "profile" "profile") (mapcar #'node-name (node-children node)))))) (test check-xmlrep-accessors (with-fixture parsed-greeting () (is (equal "greeting" (xmlrep-tag node))) (is (= 3 (length (xmlrep-children node)))) (is (null (xmlrep-attribs node))) (is (equal (list "profile" "profile" "profile") (mapcar #'xmlrep-tag (xmlrep-children node)))))) xmls-3.0.2/Makefile0000644000076500000240000000255413214545460012624 0ustar rpgstaffsystem := xmls webhome_dir := /project/${system}/public_html/ webhome_private := common-lisp.net:${webhome_dir} webhome_public := "http://common-lisp.net/project/${system}/" sourceDirectory := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) webfiles := web-page/clnet-page.shtml web-page/styles.css README.html ifeq (${user},) userat := else userat := ${user}@ endif website:=${userat}common-lisp.net:/project/${system}/public_html/ version := $(shell cat "version.lisp-expr") XMLSDIR := "${system}-$(version)" TARBALL := "build/${XMLSDIR}.tar.gz" .PHONY: archive publish-archive website publish-latest archive: ; mkdir -p build svn export . build/$(XMLSDIR) tar zcf ${TARBALL} -C build $(XMLSDIR) gpg -o ${TARBALL}.asc --sign ${TARBALL} md5sum --binary ${TARBALL} > ${TARBALL}.md5 # must be done after archive publish-archive: $(eval GPGSIG := ${TARBALL}.asc) $(eval MD5SUM := ${TARBALL}.md5) rsync --times --chmod=a+rX,ug+w ${TARBALL} ${GPGSIG} ${MD5SUM} ${website} # must be done after archive publish-latest: rsync --times --recursive --chmod=a+rX,ug+w build/${XMLSDIR} ${website} ssh common-lisp.net "cd ${webhome_dir}; ln -sf ${XMLSDIR} latest;" website: ; rsync -lt --no-g ${webfiles} ${website} ssh common-lisp.net "cd ${webhome_dir}; cp clnet-page.shtml index.shtml;" publish: archive publish-archive publish-latest website clean: rm -r build xmls-3.0.2/octets-tests/0000755000076500000240000000000013215604733013617 5ustar rpgstaffxmls-3.0.2/octets-tests/flux/0000755000076500000240000000000013215604733014575 5ustar rpgstaffxmls-3.0.2/octets-tests/flux/flux-test-iso-8859-1.xml0000644000076500000240000001127713205166646020630 0ustar rpgstaff Les derniers documents du CERTA. http://www.certa.ssi.gouv.fr CERTA (Centre d'Expertise gouvernemental de Reponse et de Traitement des Attaques informatiques). fr CERTA-2011-AVI-110 : Vulnérabilité dans IBM WepSphere Portal (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-110/CERTA-2011-AVI-110.htmlUne vulnérabilité a été corrigée dans IBM WebSphere Portal et permet à un utilisateur malintentionné de porter atteinte à la confidentialité des données. CERTA-2011-AVI-109 : Multiples vulnérabilités dans Cisco ASA série 5500 (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-109/CERTA-2011-AVI-109.htmlQuatre vulnérabilités ont été corrigées dans les appareils Cisco ASA série 5500. Trois d'entre elles permettent de réaliser un déni de service à distance, et la quatrième permet d'accéder à des données confidentielles sur le système de fichiers. CERTA-2011-AVI-108 : Vulnérabilité dans Microsoft Malware Protection Engine (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-108/CERTA-2011-AVI-108.htmlUne vulnérabilité dans Microsoft Malware Protection Engine permet à une personne malintentionnée d'élever ses privilèges. CERTA-2011-AVI-107 : Vulnérabilité dans Novell Netware (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-107/CERTA-2011-AVI-107.htmlUne vulnérabilité dans Novell Netware permet à une personne distante malintentionnée d'exécuter du code arbitraire. CERTA-2011-AVI-106 : Vulnérabilité dans CA HIPS (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-106/CERTA-2011-AVI-106.htmlUne vulnérabilité dans CA HIPS permet l'exécution de code arbitraire à distance. CERTA-2011-AVI-105 : Multiples vulnérabilités dans les logiciels Cisco TelePresence (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-105/CERTA-2011-AVI-105.htmlDe multiples vulnérabilités touchent la ligne de produits Cisco TelePresence, elles permettent notamment d'exécuter du code arbitraire ou de provoquer un déni de service à distance. CERTA-2011-AVI-104 : Vulnérabilité dans Cisco Firewall Services Module (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-104/CERTA-2011-AVI-104.htmlUne vulnérabilité permettant d'effectuer un déni de service à distance a été identifiée dans le produit Cisco Firewall Services Module (FWSM). CERTA-2011-AVI-079 : Vulnérabilité dans plusieurs implémentations de Java (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-079/CERTA-2011-AVI-079.htmlUne vulnérabilité affecte plusieurs implémentations de Java, elle permet un déni de service à distance. CERTA-2011-AVI-103 : Vulnérabilité dans ISC Bind (23 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-103/CERTA-2011-AVI-103.htmlUne vulnérabilité dans le serveur DNS ISC Bind permet à un utilisateur malintentionné de provoquer un déni de service à distance. CERTA-2011-AVI-102 : Vulnérabilités dans RedHat Directory Server (23 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-102/CERTA-2011-AVI-102.htmlPlusieurs vulnérabilités dans l'annuaire RedHat Directory Server permettent à un utilisateur malveillant de provoquer un déni de service à distance ou d'élever ses privilèges. CERTA-2011-AVI-101 : Multiples vulnérabilités dans Ruby (22 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-101/CERTA-2011-AVI-101.htmlDeux vulnérabilités dans Ruby ont été corrigées. La première permet de contourner la politique de sécurité et la seconde de porter atteinte à l'intégrité des données. CERTA-2011-AVI-100 : Vulnérabilités dans Mailman (22 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-100/CERTA-2011-AVI-100.htmlDeux vulnérabilités présentes dans Mailman permettent à un utilisateur distant de conduire des attaques de type injection de code indirecte. xmls-3.0.2/octets-tests/flux/flux-test-utf-16be.xml0000644000076500000240000002244613205353231020602 0ustar rpgstaffþÿ<rss version="2.0"> <channel> <title>Les derniers documents du CERTA.</title> <link>http://www.certa.ssi.gouv.fr</link> <description>CERTA (Centre d'Expertise gouvernemental de Reponse et de Traitement des Attaques informatiques).</description> <language>fr</language> <item><title>CERTA-2011-AVI-110 : Vulnérabilité dans IBM WepSphere Portal (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-110/CERTA-2011-AVI-110.html</link><description>Une vulnérabilité a été corrigée dans IBM WebSphere Portal et permet à un utilisateur malintentionné de porter atteinte à la confidentialité des données.</description></item> <item><title>CERTA-2011-AVI-109 : Multiples vulnérabilités dans Cisco ASA série 5500 (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-109/CERTA-2011-AVI-109.html</link><description>Quatre vulnérabilités ont été corrigées dans les appareils Cisco ASA série 5500. Trois d'entre elles permettent de réaliser un déni de service à distance, et la quatrième permet d'accéder à des données confidentielles sur le système de fichiers.</description></item> <item><title>CERTA-2011-AVI-108 : Vulnérabilité dans Microsoft Malware Protection Engine (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-108/CERTA-2011-AVI-108.html</link><description>Une vulnérabilité dans Microsoft Malware Protection Engine permet à une personne malintentionnée d'élever ses privilèges.</description></item> <item><title>CERTA-2011-AVI-107 : Vulnérabilité dans Novell Netware (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-107/CERTA-2011-AVI-107.html</link><description>Une vulnérabilité dans Novell Netware permet à une personne distante malintentionnée d'exécuter du code arbitraire.</description></item> <item><title>CERTA-2011-AVI-106 : Vulnérabilité dans CA HIPS (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-106/CERTA-2011-AVI-106.html</link><description>Une vulnérabilité dans CA HIPS permet l'exécution de code arbitraire à distance.</description></item> <item><title>CERTA-2011-AVI-105 : Multiples vulnérabilités dans les logiciels Cisco TelePresence (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-105/CERTA-2011-AVI-105.html</link><description>De multiples vulnérabilités touchent la ligne de produits Cisco TelePresence, elles permettent notamment d'exécuter du code arbitraire ou de provoquer un déni de service à distance.</description></item> <item><title>CERTA-2011-AVI-104 : Vulnérabilité dans Cisco Firewall Services Module (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-104/CERTA-2011-AVI-104.html</link><description>Une vulnérabilité permettant d'effectuer un déni de service à distance a été identifiée dans le produit Cisco Firewall Services Module (FWSM).</description></item> <item><title>CERTA-2011-AVI-079 : Vulnérabilité dans plusieurs implémentations de Java (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-079/CERTA-2011-AVI-079.html</link><description>Une vulnérabilité affecte plusieurs implémentations de Java, elle permet un déni de service à distance.</description></item> <item><title>CERTA-2011-AVI-103 : Vulnérabilité dans ISC Bind (23 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-103/CERTA-2011-AVI-103.html</link><description>Une vulnérabilité dans le serveur DNS ISC Bind permet à un utilisateur malintentionné de provoquer un déni de service à distance.</description></item> <item><title>CERTA-2011-AVI-102 : Vulnérabilités dans RedHat Directory Server (23 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-102/CERTA-2011-AVI-102.html</link><description>Plusieurs vulnérabilités dans l'annuaire RedHat Directory Server permettent à un utilisateur malveillant de provoquer un déni de service à distance ou d'élever ses privilèges.</description></item> <item><title>CERTA-2011-AVI-101 : Multiples vulnérabilités dans Ruby (22 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-101/CERTA-2011-AVI-101.html</link><description>Deux vulnérabilités dans Ruby ont été corrigées. La première permet de contourner la politique de sécurité et la seconde de porter atteinte à l'intégrité des données.</description></item> <item><title>CERTA-2011-AVI-100 : Vulnérabilités dans Mailman (22 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-100/CERTA-2011-AVI-100.html</link><description>Deux vulnérabilités présentes dans Mailman permettent à un utilisateur distant de conduire des attaques de type injection de code indirecte.</description></item> </channel> </rss> xmls-3.0.2/octets-tests/flux/flux-test-utf-16le.xml0000644000076500000240000002244613205353231020614 0ustar rpgstaffÿþ<rss version="2.0"> <channel> <title>Les derniers documents du CERTA.</title> <link>http://www.certa.ssi.gouv.fr</link> <description>CERTA (Centre d'Expertise gouvernemental de Reponse et de Traitement des Attaques informatiques).</description> <language>fr</language> <item><title>CERTA-2011-AVI-110 : Vulnérabilité dans IBM WepSphere Portal (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-110/CERTA-2011-AVI-110.html</link><description>Une vulnérabilité a été corrigée dans IBM WebSphere Portal et permet à un utilisateur malintentionné de porter atteinte à la confidentialité des données.</description></item> <item><title>CERTA-2011-AVI-109 : Multiples vulnérabilités dans Cisco ASA série 5500 (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-109/CERTA-2011-AVI-109.html</link><description>Quatre vulnérabilités ont été corrigées dans les appareils Cisco ASA série 5500. Trois d'entre elles permettent de réaliser un déni de service à distance, et la quatrième permet d'accéder à des données confidentielles sur le système de fichiers.</description></item> <item><title>CERTA-2011-AVI-108 : Vulnérabilité dans Microsoft Malware Protection Engine (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-108/CERTA-2011-AVI-108.html</link><description>Une vulnérabilité dans Microsoft Malware Protection Engine permet à une personne malintentionnée d'élever ses privilèges.</description></item> <item><title>CERTA-2011-AVI-107 : Vulnérabilité dans Novell Netware (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-107/CERTA-2011-AVI-107.html</link><description>Une vulnérabilité dans Novell Netware permet à une personne distante malintentionnée d'exécuter du code arbitraire.</description></item> <item><title>CERTA-2011-AVI-106 : Vulnérabilité dans CA HIPS (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-106/CERTA-2011-AVI-106.html</link><description>Une vulnérabilité dans CA HIPS permet l'exécution de code arbitraire à distance.</description></item> <item><title>CERTA-2011-AVI-105 : Multiples vulnérabilités dans les logiciels Cisco TelePresence (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-105/CERTA-2011-AVI-105.html</link><description>De multiples vulnérabilités touchent la ligne de produits Cisco TelePresence, elles permettent notamment d'exécuter du code arbitraire ou de provoquer un déni de service à distance.</description></item> <item><title>CERTA-2011-AVI-104 : Vulnérabilité dans Cisco Firewall Services Module (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-104/CERTA-2011-AVI-104.html</link><description>Une vulnérabilité permettant d'effectuer un déni de service à distance a été identifiée dans le produit Cisco Firewall Services Module (FWSM).</description></item> <item><title>CERTA-2011-AVI-079 : Vulnérabilité dans plusieurs implémentations de Java (24 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-079/CERTA-2011-AVI-079.html</link><description>Une vulnérabilité affecte plusieurs implémentations de Java, elle permet un déni de service à distance.</description></item> <item><title>CERTA-2011-AVI-103 : Vulnérabilité dans ISC Bind (23 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-103/CERTA-2011-AVI-103.html</link><description>Une vulnérabilité dans le serveur DNS ISC Bind permet à un utilisateur malintentionné de provoquer un déni de service à distance.</description></item> <item><title>CERTA-2011-AVI-102 : Vulnérabilités dans RedHat Directory Server (23 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-102/CERTA-2011-AVI-102.html</link><description>Plusieurs vulnérabilités dans l'annuaire RedHat Directory Server permettent à un utilisateur malveillant de provoquer un déni de service à distance ou d'élever ses privilèges.</description></item> <item><title>CERTA-2011-AVI-101 : Multiples vulnérabilités dans Ruby (22 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-101/CERTA-2011-AVI-101.html</link><description>Deux vulnérabilités dans Ruby ont été corrigées. La première permet de contourner la politique de sécurité et la seconde de porter atteinte à l'intégrité des données.</description></item> <item><title>CERTA-2011-AVI-100 : Vulnérabilités dans Mailman (22 février 2011)</title><link>http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-100/CERTA-2011-AVI-100.html</link><description>Deux vulnérabilités présentes dans Mailman permettent à un utilisateur distant de conduire des attaques de type injection de code indirecte.</description></item> </channel> </rss> xmls-3.0.2/octets-tests/flux/flux-test-utf-8.xml0000644000076500000240000001141513205166646020222 0ustar rpgstaff Les derniers documents du CERTA. http://www.certa.ssi.gouv.fr CERTA (Centre d'Expertise gouvernemental de Reponse et de Traitement des Attaques informatiques). fr CERTA-2011-AVI-110 : Vulnérabilité dans IBM WepSphere Portal (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-110/CERTA-2011-AVI-110.htmlUne vulnérabilité a été corrigée dans IBM WebSphere Portal et permet à un utilisateur malintentionné de porter atteinte à la confidentialité des données. CERTA-2011-AVI-109 : Multiples vulnérabilités dans Cisco ASA série 5500 (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-109/CERTA-2011-AVI-109.htmlQuatre vulnérabilités ont été corrigées dans les appareils Cisco ASA série 5500. Trois d'entre elles permettent de réaliser un déni de service à distance, et la quatrième permet d'accéder à des données confidentielles sur le système de fichiers. CERTA-2011-AVI-108 : Vulnérabilité dans Microsoft Malware Protection Engine (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-108/CERTA-2011-AVI-108.htmlUne vulnérabilité dans Microsoft Malware Protection Engine permet à une personne malintentionnée d'élever ses privilèges. CERTA-2011-AVI-107 : Vulnérabilité dans Novell Netware (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-107/CERTA-2011-AVI-107.htmlUne vulnérabilité dans Novell Netware permet à une personne distante malintentionnée d'exécuter du code arbitraire. CERTA-2011-AVI-106 : Vulnérabilité dans CA HIPS (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-106/CERTA-2011-AVI-106.htmlUne vulnérabilité dans CA HIPS permet l'exécution de code arbitraire à distance. CERTA-2011-AVI-105 : Multiples vulnérabilités dans les logiciels Cisco TelePresence (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-105/CERTA-2011-AVI-105.htmlDe multiples vulnérabilités touchent la ligne de produits Cisco TelePresence, elles permettent notamment d'exécuter du code arbitraire ou de provoquer un déni de service à distance. CERTA-2011-AVI-104 : Vulnérabilité dans Cisco Firewall Services Module (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-104/CERTA-2011-AVI-104.htmlUne vulnérabilité permettant d'effectuer un déni de service à distance a été identifiée dans le produit Cisco Firewall Services Module (FWSM). CERTA-2011-AVI-079 : Vulnérabilité dans plusieurs implémentations de Java (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-079/CERTA-2011-AVI-079.htmlUne vulnérabilité affecte plusieurs implémentations de Java, elle permet un déni de service à distance. CERTA-2011-AVI-103 : Vulnérabilité dans ISC Bind (23 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-103/CERTA-2011-AVI-103.htmlUne vulnérabilité dans le serveur DNS ISC Bind permet à un utilisateur malintentionné de provoquer un déni de service à distance. CERTA-2011-AVI-102 : Vulnérabilités dans RedHat Directory Server (23 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-102/CERTA-2011-AVI-102.htmlPlusieurs vulnérabilités dans l'annuaire RedHat Directory Server permettent à un utilisateur malveillant de provoquer un déni de service à distance ou d'élever ses privilèges. CERTA-2011-AVI-101 : Multiples vulnérabilités dans Ruby (22 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-101/CERTA-2011-AVI-101.htmlDeux vulnérabilités dans Ruby ont été corrigées. La première permet de contourner la politique de sécurité et la seconde de porter atteinte à l'intégrité des données. CERTA-2011-AVI-100 : Vulnérabilités dans Mailman (22 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-100/CERTA-2011-AVI-100.htmlDeux vulnérabilités présentes dans Mailman permettent à un utilisateur distant de conduire des attaques de type injection de code indirecte. xmls-3.0.2/octets-tests/flux/flux-test.sexp0000644000076500000240000001136713205400024017423 0ustar rpgstaff("rss" (("version" "2.0")) ("channel" nil ("title" nil "Les derniers documents du CERTA.") ("link" nil "http://www.certa.ssi.gouv.fr") ("description" nil "CERTA (Centre d'Expertise gouvernemental de Reponse et de Traitement des Attaques informatiques).") ("language" nil "fr") ("item" nil ("title" nil "CERTA-2011-AVI-110 : Vulnérabilité dans IBM WepSphere Portal (24 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-110/CERTA-2011-AVI-110.html") ("description" nil "Une vulnérabilité a été corrigée dans IBM WebSphere Portal et permet à un utilisateur malintentionné de porter atteinte à la confidentialité des données.")) ("item" nil ("title" nil "CERTA-2011-AVI-109 : Multiples vulnérabilités dans Cisco ASA série 5500 (24 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-109/CERTA-2011-AVI-109.html") ("description" nil "Quatre vulnérabilités ont été corrigées dans les appareils Cisco ASA série 5500. Trois d'entre elles permettent de réaliser un déni de service à distance, et la quatrième permet d'accéder à des données confidentielles sur le système de fichiers.")) ("item" nil ("title" nil "CERTA-2011-AVI-108 : Vulnérabilité dans Microsoft Malware Protection Engine (24 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-108/CERTA-2011-AVI-108.html") ("description" nil "Une vulnérabilité dans Microsoft Malware Protection Engine permet à une personne malintentionnée d'élever ses privilèges.")) ("item" nil ("title" nil "CERTA-2011-AVI-107 : Vulnérabilité dans Novell Netware (24 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-107/CERTA-2011-AVI-107.html") ("description" nil "Une vulnérabilité dans Novell Netware permet à une personne distante malintentionnée d'exécuter du code arbitraire.")) ("item" nil ("title" nil "CERTA-2011-AVI-106 : Vulnérabilité dans CA HIPS (24 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-106/CERTA-2011-AVI-106.html") ("description" nil "Une vulnérabilité dans CA HIPS permet l'exécution de code arbitraire à distance.")) ("item" nil ("title" nil "CERTA-2011-AVI-105 : Multiples vulnérabilités dans les logiciels Cisco TelePresence (24 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-105/CERTA-2011-AVI-105.html") ("description" nil "De multiples vulnérabilités touchent la ligne de produits Cisco TelePresence, elles permettent notamment d'exécuter du code arbitraire ou de provoquer un déni de service à distance.")) ("item" nil ("title" nil "CERTA-2011-AVI-104 : Vulnérabilité dans Cisco Firewall Services Module (24 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-104/CERTA-2011-AVI-104.html") ("description" nil "Une vulnérabilité permettant d'effectuer un déni de service à distance a été identifiée dans le produit Cisco Firewall Services Module (FWSM).")) ("item" nil ("title" nil "CERTA-2011-AVI-079 : Vulnérabilité dans plusieurs implémentations de Java (24 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-079/CERTA-2011-AVI-079.html") ("description" nil "Une vulnérabilité affecte plusieurs implémentations de Java, elle permet un déni de service à distance.")) ("item" nil ("title" nil "CERTA-2011-AVI-103 : Vulnérabilité dans ISC Bind (23 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-103/CERTA-2011-AVI-103.html") ("description" nil "Une vulnérabilité dans le serveur DNS ISC Bind permet à un utilisateur malintentionné de provoquer un déni de service à distance.")) ("item" nil ("title" nil "CERTA-2011-AVI-102 : Vulnérabilités dans RedHat Directory Server (23 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-102/CERTA-2011-AVI-102.html") ("description" nil "Plusieurs vulnérabilités dans l'annuaire RedHat Directory Server permettent à un utilisateur malveillant de provoquer un déni de service à distance ou d'élever ses privilèges.")) ("item" nil ("title" nil "CERTA-2011-AVI-101 : Multiples vulnérabilités dans Ruby (22 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-101/CERTA-2011-AVI-101.html") ("description" nil "Deux vulnérabilités dans Ruby ont été corrigées. La première permet de contourner la politique de sécurité et la seconde de porter atteinte à l'intégrité des données.")) ("item" nil ("title" nil "CERTA-2011-AVI-100 : Vulnérabilités dans Mailman (22 février 2011)") ("link" nil "http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-100/CERTA-2011-AVI-100.html") ("description" nil "Deux vulnérabilités présentes dans Mailman permettent à un utilisateur distant de conduire des attaques de type injection de code indirecte."))))xmls-3.0.2/octets-xml.lisp0000644000076500000240000001030413214071467014145 0ustar rpgstaff;;;; Octet stream support for XMLS with automatic encoding detection. ;;;; ;;;; FIXME: Could/should use parser rules native to XMLS to parse the XML ;;;; declaration. (defpackage xmls/octets (:use :cl :flexi-streams :cl-ppcre) (:export :make-xml-stream)) (in-package :xmls/octets) ;;; XML defines heuristics to determine the encoding of a document represented ;;; by an octet stream: https://www.w3.org/TR/xml/#charencoding (defparameter *pi-start* (string-to-octets "" :external-format :ascii)) (defparameter *xml* (string-to-octets "xml" :external-format :ascii)) (defparameter *max-decl-size* 2000 ; extra gracious margin "XML declarations exceeding *MAX-DECL-SIZE* bytes are ignored.") (defvar *encoding-scanner*) (eval-when (:load-toplevel :execute) (let ((s "[\\s\\r]*") ; (#x20 | #x9 | #xD | #xA)+? (enc-name "[A-Za-z0-9\\._-]+")) ; [A-Za-z] ([A-Za-z0-9._] | '-')* (setf *encoding-scanner* ;; S 'encoding' Eq ('"' EncName '"' | "'" EncName "'") (create-scanner (format nil "encoding~a=~a(\"(~a)\"|'(~a)')" s s enc-name enc-name))))) (defun xml-encoding-decl (string) (register-groups-bind (() a b) (*encoding-scanner* string) (external-format-name (make-external-format (or a b))))) (defun xml-encoding (in) (let ((buffer (make-array *max-decl-size* :element-type '(unsigned-byte 8))) (pos 0)) (labels ((fill-buffer (n) (setf pos (read-sequence buffer in :start pos :end (+ pos n)))) (buffer-to-ascii () (octets-to-string buffer :end pos :external-format :ascii)) (return-encoding (&optional (encoding :utf-8) (read (buffer-to-ascii))) (return-from xml-encoding (values encoding read)))) (fill-buffer 2) (when (search #(#xFE #xFF) buffer :end2 pos) (return-encoding :utf-16be "")) (when (search #(#xFF #xFE) buffer :end2 pos) (return-encoding :utf-16le "")) (unless (search *pi-start* buffer :end2 pos) (return-encoding)) (fill-buffer 3) (unless (search *xml* buffer :start2 2 :end2 pos) (return-encoding)) (loop when (= pos (fill-buffer 1)) do (return-encoding) until (search *pi-end* buffer :start2 (- pos 2) :end2 pos)) (let ((read (buffer-to-ascii))) (return-encoding (xml-encoding-decl read) read))))) (defun make-xml-stream (octet-stream) "Determine character encoding and return an XML stream for OCTET-STREAM." (multiple-value-bind (encoding read) (xml-encoding octet-stream) (make-concatenated-stream (make-string-input-stream read) (make-flexi-stream octet-stream :external-format encoding :element-type 'character)))) ;;; Test cases (defun test () (let* ((flux-test (asdf:system-relative-pathname :xmls/octets "octets-tests/flux/flux-test.sexp")) (reference (with-open-file (in flux-test :external-format :utf-8) (read in)))) (loop with success-p = t for test-case in (mapcar #'(lambda (x) (asdf:system-relative-pathname "xmls" (format nil "octets-tests/flux/~a" x))) '("flux-test-iso-8859-1.xml" "flux-test-utf-16le.xml" "flux-test-utf-16be.xml" "flux-test-utf-8.xml")) for parsed = (with-open-file (octets (asdf:system-relative-pathname :xmls/octets test-case) :element-type '(unsigned-byte 8)) (xmls:parse (make-xml-stream octets) :quash-errors t)) as parsed-list = (xmls:node->nodelist parsed) do (when (not (equal parsed-list reference)) (setf success-p nil) (format *error-output* "~&Test failure: ~a~%Output was: ~s~%~%" test-case parsed)) finally (return success-p)))) xmls-3.0.2/README.html0000644000076500000240000002565713215572650013022 0ustar rpgstaff XMLS: Common Lisp XML Parser

XMLS

Manual For Version 3

Summary

Xmls is a small, simple, non-validating xml parser for Common Lisp. It's designed to be a self-contained, easily embedded parser that recognizes a useful subset of the XML spec. It provides a simple mapping from xml to lisp structures or s-expressions and back.

Since XMLS was first released it has gained some additional complications/features. In particular:

Features

Limitations

XML Representation

Parsed xml is represented as a nested lisp structure, unlike in the original version, where it was a lisp list. The s-expression representation is still maintained, and there are functions to translate to and from this notation.

XML representation as lisp structures

In the structure representation, a node, corresponding to an XML element, is defined as follows:

(defstruct (node (:constructor %make-node))
  name
  ns
  attrs
  children)

Xmls also includes a helper function, make-node for creating xml nodes of this form:

(make-node &key name ns attrs children)

Xmls provides the corresponding accessor functions node-name, node-ns node-attrs, and node-children.

XML representation as s-expressions

In the s-expression representation, a node is represented as follows:

(name (attributes) children*)

A name is either a simple string, if the element does not belong to a namespace, or a list of (name namespace-url) if the element does belong to a namespace.

Attributes are stored as (name value) lists.

Children are stored as a list of either element nodes or text nodes.

For example, the following xml document:

<?xml version="1.0"?>
<!-- test document -->
<book title='The Cyberiad'>
  <!-- comment in here -->
  <author xmlns='http://authors'>Stanislaw Lem</author>
  <info:subject xmlns:info='http://bookinfo' rank='1'>&quot;Cybernetic Fables&quot;</info:subject>
</book>
Would parse as:
("book" (("title" "The Cyberiad"))
 (("author" . "http://authors") NIL "Stanislaw Lem")
 (("subject" . "http://bookinfo") (("rank" "1")) "\"Cybernetic Fables\""))

Backward Compatibility

To detect whether in this version of XMLS the return value of PARSE will be a list or a structure, check for the feature :XMLS-NODES-ARE-STRUCTS.

For old code that wants XML parsed into lists, instead of structures, you may replace calls to (parse str) with (node->nodelist (parse str)).

For greater convenience, we offer PARSE-TO-LIST, which performs the same function.

Usage

The interface is straightforward. The two main functions are PARSE and TOXML.

(parse source &key (compress-whitespace t) (quash-errors t)

Parse accepts either a string or an input stream and attempts to parse the xml document contained therein. It will return the s-expr parse tree if it's successful or nil if parsing fails.

If COMPRESS-WHITESPACE is non-NIL, content nodes will be trimmed of whitespace and empty whitespace strings between nodes will be discarded.

(parse-to-list source (&rest args))

Functions as PARSE, but returns a list representation of the XML document, instead of a structure.

(write-prologue xml-decl doctype stream)

write-prologue writes the leading <?xml ... ?> and <!DOCTYPE ... > elements to stream. xml-decl is an alist of attribute name value pairs. Valid xml-decl attributes per the xml spec are "version", "encoding", and "standalone", though write-prologue does not verify this. doctype is a string containing the document type definition.

(write-prolog xml-decl doctype stream)

U.S. spelling alternative to write-prologue.

(write-xml xml stream &key (indent nil))

write-xml accepts a lisp list in the format described above and writes the equivalent xml string to stream. Currently, if nodes use namespaces xmls will not assign namespaces prefixes but will explicitly assign the namespace to each node. This will be changed in a later release. Xmls will indent the generated xml output if indent is non-nil.

(toxml node &key (indent nil))

TOXML is a convenience wrapper around write-xml that returns the in a newly allocated string.

Translating to and from s-expressions

XMLS provides two exported functions to translate between the CL structure representation of the XML tree and the s-expression representation:

node->nodelist
Translate the structure representation into s-expressions.
nodelist->nodes
Translate the s-expression representation of an XMLS parse tree into lisp structures.

Helper functions

These are intended to allow programmers to avoid direct manipulation of the XMLS element representation. If you use these, your code should be easier to read and you will avoid problems if there is a change in internal representation (such changes would be hard to even find, much less correct, if using the lists directly).

make-xmlrep (tag &key attribs children)
Constructor function.
xmlrep-add-child! (xmlrep child)
Add a new child node to the XMLREP node.
xmlrep-tag (xmlrep)
Extract the tag from XMLREP.
xmlrep-tagmatch (tag treenode)
Returns true if TAG is the tag of TREENODE. Match is case insensitive (quite possibly this is the Wrong Thing).
xmlrep-attribs (xmlrep)
Extract the attributes from an XMLREP node.
xmlrep-children (xmlrep)
Extract the children from an XMLREP node.
xmlrep-find-child-tags (tag treenode)
Return all of the (direct) children of TREENODE whose tags are TAG. Matching done by xmlrep-tagmatch.
xmlrep-find-child-tag (tag treenode &optional (if-unfound :error))
Find a single child of TREENODE with TAG. Returns an error if there is more or less than one such child.
xmlrep-string-child (treenode &optional (if-unfound :error))
Returns the single string-valued child of TREENODE. If there is more than one child, or if a single child is not a simple value, returns IF-UNFOUND, which defaults to :ERROR.
xmlrep-integer-child (treenode)
Find the single child of TREENODE whose value is a string that can be parsed into an integer. Returns an error if there is more than one child, or if a single child is not appropriately valued.
xmlrep-attrib-value (attrib treenode &optional (if-undefined :error))
Find the value of ATTRIB, a string, in TREENODE. if there is no ATTRIB, will return the value of IF-UNDEFINED, which defaults to :ERROR.
xmlrep-boolean-attrib-value (attrib treenode &optional (if-undefined :error))
Find the value of ATTRIB, a string, in TREENODE. The value should be either "true" or "false". The function will return T or NIL, accordingly. If there is no ATTRIB, will return the value of IF-UNDEFINED, which defaults to :ERROR.

XMLS/Octets

XMLS itself simply processes strings or streams. This means that it does not provide native support for handling character encodings, as declared in the XML headers. The system xmls/octets, which depends on xmls provides that support with the exported function make-xml-stream, which takes an octet-stream as argument, processes its header, choosing the appropriate character encoding, and then returns a stream suitable for passing to xmls:parse.

Probably make-xml-stream should be made generic, and support arguments of other types (e.g., strings interpreted as filenames, pathnames, etc.).

Installation

xmls can be installed as an asdf system. An asdf system definition is provided with the distribution.

Previous versions of XMLS were single files, and could be installed simply by loading the file xmls.lisp. This option is no longer supported.

Contact Information

Please contact Robert Goldman, rpgoldman AT sift.net with any questions or bug reports.

xmls-3.0.2/run-tests.lisp0000644000076500000240000001037713214071513014014 0ustar rpgstaff(defpackage xmls-test-runner (:use :common-lisp)) (in-package :xmls-test-runner) (require :asdf) (format t "ASDF version is ~a~%" (asdf:asdf-version)) (defparameter *quicklisp-p* (not (zerop (parse-integer (uiop:getenv "QUICKLISP")))) ) (when *quicklisp-p* (load (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))) (defmacro quit-on-error (&body body) (let ((code 1)) (when (numberp (first body)) (setf code (pop body))) `(call-quitting-on-error (lambda () ,@body) ,code))) (defun call-quitting-on-error (thunk &optional (code 1)) "Unless the environment variable DEBUG_ASDF_TEST is bound, write a message and exit on an error. If *asdf-test-debug* is true, enter the debugger." (flet ((quit (c desc) (uiop:safe-format! *error-output* "~&Encountered ~a during test.~%~a~%" desc c) (cond ;; decline to handle the error. ((ignore-errors (funcall (find-symbol "GETENV" :asdf) "DEBUG_ASDF_TEST")) (format t "~&Interactive mode (DEBUG_ASDF_TEST) -- Invoke debugger.~%") (invoke-debugger c)) (t (finish-output *standard-output*) (finish-output *trace-output*) (uiop:safe-format! *error-output* "~&ABORTING:~% ~S~%" c) (uiop:print-condition-backtrace c) (uiop:safe-format! *error-output* "~&ABORTING:~% ~S~%" c) (uiop:safe-format! *error-output* "~&Script failed~%") (finish-output *error-output*) (uiop:quit code t))))) (handler-bind ((error (lambda (c) (quit c "ERROR"))) (storage-condition (lambda (c) (quit c "STORAGE-CONDITION"))) (serious-condition (lambda (c) (quit c "Other SERIOUS-CONDIITON")))) (funcall thunk) (format t "~&Script succeeded~%") t))) ;; for this to work, we must ensure that ASDF gets an OK configuration ;; on startup. (setf asdf:*compile-file-failure-behaviour* :error) (quit-on-error (macrolet ((load-system (s) (if *quicklisp-p* `(uiop:symbol-call '#:ql '#:quickload ,s)`(asdf:load-system ,s)))) (load-system :flexi-streams) (load-system :fiveam) (load-system "cl-ppcre"))) ; need to do this here because it doesn't build without warnings. (setf asdf:*compile-file-warnings-behaviour* :error) (defvar *build-warning* nil) (defvar *build-error* nil) (catch 'build-fail (handler-bind ((warning #'(lambda (x) ;; this is necessary because on SBCL ;; there's an EXTERNAL handler for some ;; uninteresting warnings. (signal x) (push x *build-warning*) (throw 'build-fail :fail))) (error #'(lambda (x) (push x *build-error*) (throw 'build-fail :warn)))) (asdf:load-system "xmls" :force t))) (cond (*build-error* (uiop:die 1 "XMLS build failed with error(s):~%~{~a~%~}" *build-error*)) (*build-warning* (uiop:die 1 "XMLS build failed with warning(s):~%~{~a~%~}" *build-warning*))) (catch 'build-fail (handler-bind ((warning #'(lambda (x) ;; this is necessary because on SBCL ;; there's an EXTERNAL handler for some ;; uninteresting warnings. (signal x) (push x *build-warning*) (throw 'build-fail :fail))) (error #'(lambda (x) (push x *build-error*) (throw 'build-fail :warn)))) (asdf:load-system "xmls/octets" :force t))) (cond (*build-error* (uiop:die 2 "XMLS/OCTETS build failed with error(s):~%~{~a~%~}" *build-error*)) (*build-warning* (uiop:die 2 "XMLS/OCTETS build failed with warning(s):~%~{~a~%~}" *build-warning*))) (quit-on-error 3 (format t "~&;;; Testing XMLS.~%") (asdf:test-system "xmls")) (quit-on-error 4 (format t "~&;;; Testing XMLS/OCTETS.~%") (asdf:test-system "xmls/octets")) (uiop:quit 0) xmls-3.0.2/run-tests.pl0000755000076500000240000001102413214071513013451 0ustar rpgstaff#!/usr/bin/env perl use Getopt::Long; use FindBin; use File::Find; our $FORM = "(xmls::test)"; our $EVAL = "--eval"; our $SEPARATOR=""; our $quicklisp = 0; our $usage = <<'USAGE'; usage: run-tests.pl [options] options: --abcl run tests with abcl --allegro run tests with Allegro Common Lisp, ANSI mode --allegromodern run tests with Allegro Common Lisp, modern case-sensitive mode --ccl run tests with clozure common lisp --cmucl run tests with cmucl --sbcl run tests with sbcl (default) --quicklisp run against quicklisp --verbose output parsed xml Note, there are two ways to run this system: either you can run it in an environment where Quicklisp is available, and the ancillary libraries needed for the tests are available that way, or you can use the CL_SOURCE_REGISTRY configuration to set up ASDF to find the ancillary libraries. USAGE our $command = $ENV{SBCL} || "sbcl"; our $CMDLINE="${command} --no-userinit "; our $SEPARATOR="--"; our $LOAD="--load"; my $help = 0; my $verbose = 0; $ENV{"CL_SOURCE_REGISTRY"}=$FindBin::RealBin . ":" unless $ENV{"CL_SOURCE_REGISTRY"}; GetOptions ( "abcl" => \&lisp_handler, "ccl" => \&lisp_handler, "cmucl" => \&lisp_handler, "allegro" => \&lisp_handler, "allegromodern" => \&lisp_handler, "sbcl" => \&lisp_handler, "clisp" => \&lisp_handler, "help" => \$help, "usage" => \$help, "verbose" => \&set_verbose, "quicklisp" => \$quicklisp ); $ENV{"QUICKLISP"} = $quicklisp; if ($help) { print $usage; exit 0; } # unless ( $TESTS ) { # set_all_tests(); # } # { # my $command = "$CMDLINE $EVAL \"(require :asdf)\" $EVAL \"(asdf:load-system :xmls)\" $EVAL \"$FORM\" $SEPARATOR $TESTS"; # print "$command\n" if $verbose; # my $code = system $command; # if ($code != 0) { # print "XMLS parsing tests failed.\n"; # exit $code # } else { # if ($verbose) { # } # } # } { print STDERR "Running ASDF tests.\n"; my $cmd = "$CMDLINE $LOAD $FindBin::RealBin/run-tests.lisp"; print STDERR "Command for 5AM tests is:\n\t$cmd\n"; my $code = system $cmd; print STDERR "ASDF test output code is: $code\n"; if ($code) { $code = $code >> 8; print STDERR "Exiting script with code $code\n"; # this is going wrong... exit $code; } print STDERR "Done running ASDF tests.\n"; exit 0; } # subroutines from here on down... sub set_verbose { $FORM="(progn (setf xmls::*test-verbose* t)(xmls::test))"; $verbose = 1; } # our @all_tests; # sub set_all_tests { # File::Find::find({wanted => \&wanted}, "$FindBin::RealBin/tests/"); # if ($verbose) { # print STDERR "Test list is:\n"; # foreach my $test (@all_tests) { # print STDERR "\t$test\n"; # } # } # $TESTS = join(" ", @all_tests); # } # sub wanted { # /^.*\.xml\z/s # && push @all_tests, $File::Find::name; # } sub usage { print $usage; } sub lisp_handler { my $lisp = shift; if ( $lisp eq "abcl" ) { $command=$ENV{ABCL} || "abcl"; $CMDLINE="${command} --noinit --noinform"; # --eval \'(require :asdf)\' --load xmls.asd --eval \'(asdf:load-system :xmls)\' "; } elsif ( $lisp eq "ccl" ) { $command=$ENV{CCL} || "ccl"; $CMDLINE="${command} --no-init --quiet"; # --eval \'(require :asdf)\' --load xmls.asd --eval '(asdf:load-system :xmls)' "; $SEPARATOR="--"; } elsif ( $lisp eq "cmucl" ) { $command=$ENV{CMUCL} || "lisp"; $EVAL="-eval"; $LOAD="-load"; $CMDLINE="${command} -noinit " #-eval \'(require :asdf)\' -load xmls.asd -eval \'(asdf:load-system :xmls)\' "; } elsif ($lisp eq "allegro") { $command=$ENV{ALLEGRO} || "alisp"; $EVAL = "-e"; $LOAD="-L"; $CMDLINE="${command} -q"; # -e \'(require :asdf)\' -L xmls.asd -e \'(asdf:load-system :xmls)\' "; $SEPARATOR="--"; } elsif ($lisp eq "allegromodern") { $command=$ENV{ALLEGROMODERN} || "mlisp"; $EVAL = "-e"; $LOAD = "-L"; $CMDLINE="${command} -q "; #-e \'(require :asdf)\' -L xmls.asd -e \'(asdf:load-system :xmls)\' "; $SEPARATOR="--"; } elsif ($lisp eq "sbcl") { # the default... } elsif ($lisp eq "clisp") { $command=$ENV{CLISP} || "clisp"; $EVAL = "-x"; $LOAD = "-i"; $CMDLINE="${command} -norc -ansi"; # -x \'(require :asdf)\' -i xmls.asd -x \'(asdf:load-system :xmls)\' "; $SEPARATOR="--"; } } xmls-3.0.2/tests/0000755000076500000240000000000013215604733012320 5ustar rpgstaffxmls-3.0.2/tests/ant/0000755000076500000240000000000013215604733013102 5ustar rpgstaffxmls-3.0.2/tests/ant/build.xml0000644000076500000240000001670310122063105014714 0ustar rpgstaff ****************************************************** * TARGETS (also you can use "-projecthelp" ant flag * to see targets): * 1. release - creates a full Cayenne distribution. * 2. release-site * - creates a full Cayenne website distribution. * 3. build - (default target) builds all subproject JAR files. * 4. compile - compiles all subprojects source files. * 5. clean - cleans temporary build and distribution directories * 6. clean-java - cleans all build directories, preserving the docs and such * 7. doc - builds Cayenne documentation including Javadocs. * 8. api - builds Javdoc API documentation. * 9. javacc - runs javacc * 10. test - runs JUnit tests * 11. help - prints this message * * * ENVIRONMENT: * java.home = ${java.home} * user.home = ${user.home} * ant.home = ${ant.home} * build.compiler = ${build.compiler} ****************************************************** "site.dir" must be defined. xmls-3.0.2/tests/beep/0000755000076500000240000000000013215604733013233 5ustar rpgstaffxmls-3.0.2/tests/beep/greeting1.xml0000644000076500000240000000025710122063105015630 0ustar rpgstaff xmls-3.0.2/tests/beep/msg1.xml0000644000076500000240000000011610122063105014604 0ustar rpgstaff xmls-3.0.2/tests/cdata/0000755000076500000240000000000013215604733013374 5ustar rpgstaffxmls-3.0.2/tests/cdata/cdata1.xml0000644000076500000240000000005610122063105015236 0ustar rpgstaff xmls-3.0.2/tests/char-encoding/0000755000076500000240000000000013215604733015021 5ustar rpgstaffxmls-3.0.2/tests/char-encoding/flux-test-utf-8.xml0000644000076500000240000001147211531753421020442 0ustar rpgstaff Les derniers documents du CERTA. http://www.certa.ssi.gouv.fr CERTA (Centre d'Expertise gouvernemental de Reponse et de Traitement des Attaques informatiques). fr CERTA-2011-AVI-110 : Vulnérabilité dans IBM WepSphere Portal (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-110/CERTA-2011-AVI-110.htmlUne vulnérabilité a été corrigée dans IBM WebSphere Portal et permet à un utilisateur malintentionné de porter atteinte à la confidentialité des données. CERTA-2011-AVI-109 : Multiples vulnérabilités dans Cisco ASA série 5500 (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-109/CERTA-2011-AVI-109.htmlQuatre vulnérabilités ont été corrigées dans les appareils Cisco ASA série 5500. Trois d'entre elles permettent de réaliser un déni de service à distance, et la quatrième permet d'accéder à des données confidentielles sur le système de fichiers. CERTA-2011-AVI-108 : Vulnérabilité dans Microsoft Malware Protection Engine (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-108/CERTA-2011-AVI-108.htmlUne vulnérabilité dans Microsoft Malware Protection Engine permet à une personne malintentionnée d'élever ses privilèges. CERTA-2011-AVI-107 : Vulnérabilité dans Novell Netware (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-107/CERTA-2011-AVI-107.htmlUne vulnérabilité dans Novell Netware permet à une personne distante malintentionnée d'exécuter du code arbitraire. CERTA-2011-AVI-106 : Vulnérabilité dans CA HIPS (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-106/CERTA-2011-AVI-106.htmlUne vulnérabilité dans CA HIPS permet l'exécution de code arbitraire à distance. CERTA-2011-AVI-105 : Multiples vulnérabilités dans les logiciels Cisco TelePresence (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-105/CERTA-2011-AVI-105.htmlDe multiples vulnérabilités touchent la ligne de produits Cisco TelePresence, elles permettent notamment d'exécuter du code arbitraire ou de provoquer un déni de service à distance. CERTA-2011-AVI-104 : Vulnérabilité dans Cisco Firewall Services Module (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-104/CERTA-2011-AVI-104.htmlUne vulnérabilité permettant d'effectuer un déni de service à distance a été identifiée dans le produit Cisco Firewall Services Module (FWSM). CERTA-2011-AVI-079 : Vulnérabilité dans plusieurs implémentations de Java (24 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-079/CERTA-2011-AVI-079.htmlUne vulnérabilité affecte plusieurs implémentations de Java, elle permet un déni de service à distance. CERTA-2011-AVI-103 : Vulnérabilité dans ISC Bind (23 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-103/CERTA-2011-AVI-103.htmlUne vulnérabilité dans le serveur DNS ISC Bind permet à un utilisateur malintentionné de provoquer un déni de service à distance. CERTA-2011-AVI-102 : Vulnérabilités dans RedHat Directory Server (23 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-102/CERTA-2011-AVI-102.htmlPlusieurs vulnérabilités dans l'annuaire RedHat Directory Server permettent à un utilisateur malveillant de provoquer un déni de service à distance ou d'élever ses privilèges. CERTA-2011-AVI-101 : Multiples vulnérabilités dans Ruby (22 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-101/CERTA-2011-AVI-101.htmlDeux vulnérabilités dans Ruby ont été corrigées. La première permet de contourner la politique de sécurité et la seconde de porter atteinte à l'intégrité des données. CERTA-2011-AVI-100 : Vulnérabilités dans Mailman (22 février 2011)http://www.certa.ssi.gouv.fr/site/CERTA-2011-AVI-100/CERTA-2011-AVI-100.htmlDeux vulnérabilités présentes dans Mailman permettent à un utilisateur distant de conduire des attaques de type injection de code indirecte. xmls-3.0.2/tests/dav/0000755000076500000240000000000013215604733013072 5ustar rpgstaffxmls-3.0.2/tests/dav/propfind1.xml0000644000076500000240000000025410122063105015501 0ustar rpgstaff xmls-3.0.2/tests/dav/propfind2r.xml0000644000076500000240000000147610122063105015673 0ustar rpgstaff http://www.foo.bar/file Box type A J.J. Johnson HTTP/1.1 200 OK HTTP/1.1 403 Forbidden The user does not have access to the DingALing property. There has been an access violation error. xmls-3.0.2/tests/dav/propfind3.xml0000644000076500000240000000047410122063105015507 0ustar rpgstaff xmls-3.0.2/tests/large/0000755000076500000240000000000013215604733013412 5ustar rpgstaffxmls-3.0.2/tests/large/two_gent.xml0000644000076500000240000050135110122063105015751 0ustar rpgstaff The Two Gentlemen of Verona

Text placed in the public domain by Moby Lexical Tools, 1992.

SGML markup by Jon Bosak, 1992-1994.

XML version by Jon Bosak, 1996-1998.

This work may be freely copied and distributed worldwide.

Dramatis Personae DUKE OF MILAN, Father to Silvia. VALENTINE PROTEUS the two Gentlemen. ANTONIO, Father to Proteus. THURIO, a foolish rival to Valentine. EGLAMOUR, Agent for Silvia in her escape. HOST, where Julia lodges. OUTLAWS, with Valentine. SPEED, a clownish servant to Valentine. LAUNCE, the like to Proteus. PANTHINO, Servant to Antonio. JULIA, beloved of Proteus. SILVIA, beloved of Valentine. LUCETTA, waiting-woman to Julia. Servants, Musicians. SCENE Verona; Milan; the frontiers of Mantua. THE TWO GENTLEMEN OF VERONA ACT I SCENE I. Verona. An open place. Enter VALENTINE and PROTEUS VALENTINE Cease to persuade, my loving Proteus: Home-keeping youth have ever homely wits. Were't not affection chains thy tender days To the sweet glances of thy honour'd love, I rather would entreat thy company To see the wonders of the world abroad, Than, living dully sluggardized at home, Wear out thy youth with shapeless idleness. But since thou lovest, love still and thrive therein, Even as I would when I to love begin. PROTEUS Wilt thou be gone? Sweet Valentine, adieu! Think on thy Proteus, when thou haply seest Some rare note-worthy object in thy travel: Wish me partaker in thy happiness When thou dost meet good hap; and in thy danger, If ever danger do environ thee, Commend thy grievance to my holy prayers, For I will be thy beadsman, Valentine. VALENTINE And on a love-book pray for my success? PROTEUS Upon some book I love I'll pray for thee. VALENTINE That's on some shallow story of deep love: How young Leander cross'd the Hellespont. PROTEUS That's a deep story of a deeper love: For he was more than over shoes in love. VALENTINE 'Tis true; for you are over boots in love, And yet you never swum the Hellespont. PROTEUS Over the boots? nay, give me not the boots. VALENTINE No, I will not, for it boots thee not. PROTEUS What? VALENTINE To be in love, where scorn is bought with groans; Coy looks with heart-sore sighs; one fading moment's mirth With twenty watchful, weary, tedious nights: If haply won, perhaps a hapless gain; If lost, why then a grievous labour won; However, but a folly bought with wit, Or else a wit by folly vanquished. PROTEUS So, by your circumstance, you call me fool. VALENTINE So, by your circumstance, I fear you'll prove. PROTEUS 'Tis love you cavil at: I am not Love. VALENTINE Love is your master, for he masters you: And he that is so yoked by a fool, Methinks, should not be chronicled for wise. PROTEUS Yet writers say, as in the sweetest bud The eating canker dwells, so eating love Inhabits in the finest wits of all. VALENTINE And writers say, as the most forward bud Is eaten by the canker ere it blow, Even so by love the young and tender wit Is turn'd to folly, blasting in the bud, Losing his verdure even in the prime And all the fair effects of future hopes. But wherefore waste I time to counsel thee, That art a votary to fond desire? Once more adieu! my father at the road Expects my coming, there to see me shipp'd. PROTEUS And thither will I bring thee, Valentine. VALENTINE Sweet Proteus, no; now let us take our leave. To Milan let me hear from thee by letters Of thy success in love, and what news else Betideth here in absence of thy friend; And likewise will visit thee with mine. PROTEUS All happiness bechance to thee in Milan! VALENTINE As much to you at home! and so, farewell. Exit PROTEUS He after honour hunts, I after love: He leaves his friends to dignify them more, I leave myself, my friends and all, for love. Thou, Julia, thou hast metamorphosed me, Made me neglect my studies, lose my time, War with good counsel, set the world at nought; Made wit with musing weak, heart sick with thought. Enter SPEED SPEED Sir Proteus, save you! Saw you my master? PROTEUS But now he parted hence, to embark for Milan. SPEED Twenty to one then he is shipp'd already, And I have play'd the sheep in losing him. PROTEUS Indeed, a sheep doth very often stray, An if the shepherd be a while away. SPEED You conclude that my master is a shepherd, then, and I a sheep? PROTEUS I do. SPEED Why then, my horns are his horns, whether I wake or sleep. PROTEUS A silly answer and fitting well a sheep. SPEED This proves me still a sheep. PROTEUS True; and thy master a shepherd. SPEED Nay, that I can deny by a circumstance. PROTEUS It shall go hard but I'll prove it by another. SPEED The shepherd seeks the sheep, and not the sheep the shepherd; but I seek my master, and my master seeks not me: therefore I am no sheep. PROTEUS The sheep for fodder follow the shepherd; the shepherd for food follows not the sheep: thou for wages followest thy master; thy master for wages follows not thee: therefore thou art a sheep. SPEED Such another proof will make me cry 'baa.' PROTEUS But, dost thou hear? gavest thou my letter to Julia? SPEED Ay sir: I, a lost mutton, gave your letter to her, a laced mutton, and she, a laced mutton, gave me, a lost mutton, nothing for my labour. PROTEUS Here's too small a pasture for such store of muttons. SPEED If the ground be overcharged, you were best stick her. PROTEUS Nay: in that you are astray, 'twere best pound you. SPEED Nay, sir, less than a pound shall serve me for carrying your letter. PROTEUS You mistake; I mean the pound,--a pinfold. SPEED From a pound to a pin? fold it over and over, 'Tis threefold too little for carrying a letter to your lover. PROTEUS But what said she? SPEED First nodding Ay. PROTEUS Nod--Ay--why, that's noddy. SPEED You mistook, sir; I say, she did nod: and you ask me if she did nod; and I say, 'Ay.' PROTEUS And that set together is noddy. SPEED Now you have taken the pains to set it together, take it for your pains. PROTEUS No, no; you shall have it for bearing the letter. SPEED Well, I perceive I must be fain to bear with you. PROTEUS Why sir, how do you bear with me? SPEED Marry, sir, the letter, very orderly; having nothing but the word 'noddy' for my pains. PROTEUS Beshrew me, but you have a quick wit. SPEED And yet it cannot overtake your slow purse. PROTEUS Come come, open the matter in brief: what said she? SPEED Open your purse, that the money and the matter may be both at once delivered. PROTEUS Well, sir, here is for your pains. What said she? SPEED Truly, sir, I think you'll hardly win her. PROTEUS Why, couldst thou perceive so much from her? SPEED Sir, I could perceive nothing at all from her; no, not so much as a ducat for delivering your letter: and being so hard to me that brought your mind, I fear she'll prove as hard to you in telling your mind. Give her no token but stones; for she's as hard as steel. PROTEUS What said she? nothing? SPEED No, not so much as 'Take this for thy pains.' To testify your bounty, I thank you, you have testerned me; in requital whereof, henceforth carry your letters yourself: and so, sir, I'll commend you to my master. PROTEUS Go, go, be gone, to save your ship from wreck, Which cannot perish having thee aboard, Being destined to a drier death on shore. Exit SPEED I must go send some better messenger: I fear my Julia would not deign my lines, Receiving them from such a worthless post. Exit SCENE II. The same. Garden of JULIA's house. Enter JULlA and LUCETTA JULIA But say, Lucetta, now we are alone, Wouldst thou then counsel me to fall in love? LUCETTA Ay, madam, so you stumble not unheedfully. JULIA Of all the fair resort of gentlemen That every day with parle encounter me, In thy opinion which is worthiest love? LUCETTA Please you repeat their names, I'll show my mind According to my shallow simple skill. JULIA What think'st thou of the fair Sir Eglamour? LUCETTA As of a knight well-spoken, neat and fine; But, were I you, he never should be mine. JULIA What think'st thou of the rich Mercatio? LUCETTA Well of his wealth; but of himself, so so. JULIA What think'st thou of the gentle Proteus? LUCETTA Lord, Lord! to see what folly reigns in us! JULIA How now! what means this passion at his name? LUCETTA Pardon, dear madam: 'tis a passing shame That I, unworthy body as I am, Should censure thus on lovely gentlemen. JULIA Why not on Proteus, as of all the rest? LUCETTA Then thus: of many good I think him best. JULIA Your reason? LUCETTA I have no other, but a woman's reason; I think him so because I think him so. JULIA And wouldst thou have me cast my love on him? LUCETTA Ay, if you thought your love not cast away. JULIA Why he, of all the rest, hath never moved me. LUCETTA Yet he, of all the rest, I think, best loves ye. JULIA His little speaking shows his love but small. LUCETTA Fire that's closest kept burns most of all. JULIA They do not love that do not show their love. LUCETTA O, they love least that let men know their love. JULIA I would I knew his mind. LUCETTA Peruse this paper, madam. JULIA 'To Julia.' Say, from whom? LUCETTA That the contents will show. JULIA Say, say, who gave it thee? LUCETTA Valentine's page; and sent, I think, from Proteus. He would have given it you; but I, being in the way, Did in your name receive it: pardon the fault I pray. JULIA Now, by my modesty, a goodly broker! Dare you presume to harbour wanton lines? To whisper and conspire against my youth? Now, trust me, 'tis an office of great worth And you an officer fit for the place. Or else return no more into my sight. LUCETTA To plead for love deserves more fee than hate. JULIA Will ye be gone? LUCETTA That you may ruminate. Exit JULIA And yet I would I had o'erlooked the letter: It were a shame to call her back again And pray her to a fault for which I chid her. What a fool is she, that knows I am a maid, And would not force the letter to my view! Since maids, in modesty, say 'no' to that Which they would have the profferer construe 'ay.' Fie, fie, how wayward is this foolish love That, like a testy babe, will scratch the nurse And presently all humbled kiss the rod! How churlishly I chid Lucetta hence, When willingly I would have had her here! How angerly I taught my brow to frown, When inward joy enforced my heart to smile! My penance is to call Lucetta back And ask remission for my folly past. What ho! Lucetta! Re-enter LUCETTA LUCETTA What would your ladyship? JULIA Is't near dinner-time? LUCETTA I would it were, That you might kill your stomach on your meat And not upon your maid. JULIA What is't that you took up so gingerly? LUCETTA Nothing. JULIA Why didst thou stoop, then? LUCETTA To take a paper up that I let fall. JULIA And is that paper nothing? LUCETTA Nothing concerning me. JULIA Then let it lie for those that it concerns. LUCETTA Madam, it will not lie where it concerns Unless it have a false interpeter. JULIA Some love of yours hath writ to you in rhyme. LUCETTA That I might sing it, madam, to a tune. Give me a note: your ladyship can set. JULIA As little by such toys as may be possible. Best sing it to the tune of 'Light o' love.' LUCETTA It is too heavy for so light a tune. JULIA Heavy! belike it hath some burden then? LUCETTA Ay, and melodious were it, would you sing it. JULIA And why not you? LUCETTA I cannot reach so high. JULIA Let's see your song. How now, minion! LUCETTA Keep tune there still, so you will sing it out: And yet methinks I do not like this tune. JULIA You do not? LUCETTA No, madam; it is too sharp. JULIA You, minion, are too saucy. LUCETTA Nay, now you are too flat And mar the concord with too harsh a descant: There wanteth but a mean to fill your song. JULIA The mean is drown'd with your unruly bass. LUCETTA Indeed, I bid the base for Proteus. JULIA This babble shall not henceforth trouble me. Here is a coil with protestation! Tears the letter Go get you gone, and let the papers lie: You would be fingering them, to anger me. LUCETTA She makes it strange; but she would be best pleased To be so anger'd with another letter. Exit JULIA Nay, would I were so anger'd with the same! O hateful hands, to tear such loving words! Injurious wasps, to feed on such sweet honey And kill the bees that yield it with your stings! I'll kiss each several paper for amends. Look, here is writ 'kind Julia.' Unkind Julia! As in revenge of thy ingratitude, I throw thy name against the bruising stones, Trampling contemptuously on thy disdain. And here is writ 'love-wounded Proteus.' Poor wounded name! my bosom as a bed Shall lodge thee till thy wound be thoroughly heal'd; And thus I search it with a sovereign kiss. But twice or thrice was 'Proteus' written down. Be calm, good wind, blow not a word away Till I have found each letter in the letter, Except mine own name: that some whirlwind bear Unto a ragged fearful-hanging rock And throw it thence into the raging sea! Lo, here in one line is his name twice writ, 'Poor forlorn Proteus, passionate Proteus, To the sweet Julia:' that I'll tear away. And yet I will not, sith so prettily He couples it to his complaining names. Thus will I fold them one on another: Now kiss, embrace, contend, do what you will. Re-enter LUCETTA LUCETTA Madam, Dinner is ready, and your father stays. JULIA Well, let us go. LUCETTA What, shall these papers lie like tell-tales here? JULIA If you respect them, best to take them up. LUCETTA Nay, I was taken up for laying them down: Yet here they shall not lie, for catching cold. JULIA I see you have a month's mind to them. LUCETTA Ay, madam, you may say what sights you see; I see things too, although you judge I wink. JULIA Come, come; will't please you go? Exeunt SCENE III. The same. ANTONIO's house. Enter ANTONIO and PANTHINO ANTONIO Tell me, Panthino, what sad talk was that Wherewith my brother held you in the cloister? PANTHINO 'Twas of his nephew Proteus, your son. ANTONIO Why, what of him? PANTHINO He wonder'd that your lordship Would suffer him to spend his youth at home, While other men, of slender reputation, Put forth their sons to seek preferment out: Some to the wars, to try their fortune there; Some to discover islands far away; Some to the studious universities. For any or for all these exercises, He said that Proteus your son was meet, And did request me to importune you To let him spend his time no more at home, Which would be great impeachment to his age, In having known no travel in his youth. ANTONIO Nor need'st thou much importune me to that Whereon this month I have been hammering. I have consider'd well his loss of time And how he cannot be a perfect man, Not being tried and tutor'd in the world: Experience is by industry achieved And perfected by the swift course of time. Then tell me, whither were I best to send him? PANTHINO I think your lordship is not ignorant How his companion, youthful Valentine, Attends the emperor in his royal court. ANTONIO I know it well. PANTHINO 'Twere good, I think, your lordship sent him thither: There shall he practise tilts and tournaments, Hear sweet discourse, converse with noblemen. And be in eye of every exercise Worthy his youth and nobleness of birth. ANTONIO I like thy counsel; well hast thou advised: And that thou mayst perceive how well I like it, The execution of it shall make known. Even with the speediest expedition I will dispatch him to the emperor's court. PANTHINO To-morrow, may it please you, Don Alphonso, With other gentlemen of good esteem, Are journeying to salute the emperor And to commend their service to his will. ANTONIO Good company; with them shall Proteus go: And, in good time! now will we break with him. Enter PROTEUS PROTEUS Sweet love! sweet lines! sweet life! Here is her hand, the agent of her heart; Here is her oath for love, her honour's pawn. O, that our fathers would applaud our loves, To seal our happiness with their consents! O heavenly Julia! ANTONIO How now! what letter are you reading there? PROTEUS May't please your lordship, 'tis a word or two Of commendations sent from Valentine, Deliver'd by a friend that came from him. ANTONIO Lend me the letter; let me see what news. PROTEUS There is no news, my lord, but that he writes How happily he lives, how well beloved And daily graced by the emperor; Wishing me with him, partner of his fortune. ANTONIO And how stand you affected to his wish? PROTEUS As one relying on your lordship's will And not depending on his friendly wish. ANTONIO My will is something sorted with his wish. Muse not that I thus suddenly proceed; For what I will, I will, and there an end. I am resolved that thou shalt spend some time With Valentinus in the emperor's court: What maintenance he from his friends receives, Like exhibition thou shalt have from me. To-morrow be in readiness to go: Excuse it not, for I am peremptory. PROTEUS My lord, I cannot be so soon provided: Please you, deliberate a day or two. ANTONIO Look, what thou want'st shall be sent after thee: No more of stay! to-morrow thou must go. Come on, Panthino: you shall be employ'd To hasten on his expedition. Exeunt ANTONIO and PANTHINO PROTEUS Thus have I shunn'd the fire for fear of burning, And drench'd me in the sea, where I am drown'd. I fear'd to show my father Julia's letter, Lest he should take exceptions to my love; And with the vantage of mine own excuse Hath he excepted most against my love. O, how this spring of love resembleth The uncertain glory of an April day, Which now shows all the beauty of the sun, And by and by a cloud takes all away! Re-enter PANTHINO PANTHINO Sir Proteus, your father calls for you: He is in haste; therefore, I pray you to go. PROTEUS Why, this it is: my heart accords thereto, And yet a thousand times it answers 'no.' Exeunt ACT II SCENE I. Milan. The DUKE's palace. Enter VALENTINE and SPEED SPEED Sir, your glove. VALENTINE Not mine; my gloves are on. SPEED Why, then, this may be yours, for this is but one. VALENTINE Ha! let me see: ay, give it me, it's mine: Sweet ornament that decks a thing divine! Ah, Silvia, Silvia! SPEED Madam Silvia! Madam Silvia! VALENTINE How now, sirrah? SPEED She is not within hearing, sir. VALENTINE Why, sir, who bade you call her? SPEED Your worship, sir; or else I mistook. VALENTINE Well, you'll still be too forward. SPEED And yet I was last chidden for being too slow. VALENTINE Go to, sir: tell me, do you know Madam Silvia? SPEED She that your worship loves? VALENTINE Why, how know you that I am in love? SPEED Marry, by these special marks: first, you have learned, like Sir Proteus, to wreathe your arms, like a malecontent; to relish a love-song, like a robin-redbreast; to walk alone, like one that had the pestilence; to sigh, like a school-boy that had lost his A B C; to weep, like a young wench that had buried her grandam; to fast, like one that takes diet; to watch like one that fears robbing; to speak puling, like a beggar at Hallowmas. You were wont, when you laughed, to crow like a cock; when you walked, to walk like one of the lions; when you fasted, it was presently after dinner; when you looked sadly, it was for want of money: and now you are metamorphosed with a mistress, that, when I look on you, I can hardly think you my master. VALENTINE Are all these things perceived in me? SPEED They are all perceived without ye. VALENTINE Without me? they cannot. SPEED Without you? nay, that's certain, for, without you were so simple, none else would: but you are so without these follies, that these follies are within you and shine through you like the water in an urinal, that not an eye that sees you but is a physician to comment on your malady. VALENTINE But tell me, dost thou know my lady Silvia? SPEED She that you gaze on so as she sits at supper? VALENTINE Hast thou observed that? even she, I mean. SPEED Why, sir, I know her not. VALENTINE Dost thou know her by my gazing on her, and yet knowest her not? SPEED Is she not hard-favoured, sir? VALENTINE Not so fair, boy, as well-favoured. SPEED Sir, I know that well enough. VALENTINE What dost thou know? SPEED That she is not so fair as, of you, well-favoured. VALENTINE I mean that her beauty is exquisite, but her favour infinite. SPEED That's because the one is painted and the other out of all count. VALENTINE How painted? and how out of count? SPEED Marry, sir, so painted, to make her fair, that no man counts of her beauty. VALENTINE How esteemest thou me? I account of her beauty. SPEED You never saw her since she was deformed. VALENTINE How long hath she been deformed? SPEED Ever since you loved her. VALENTINE I have loved her ever since I saw her; and still I see her beautiful. SPEED If you love her, you cannot see her. VALENTINE Why? SPEED Because Love is blind. O, that you had mine eyes; or your own eyes had the lights they were wont to have when you chid at Sir Proteus for going ungartered! VALENTINE What should I see then? SPEED Your own present folly and her passing deformity: for he, being in love, could not see to garter his hose, and you, being in love, cannot see to put on your hose. VALENTINE Belike, boy, then, you are in love; for last morning you could not see to wipe my shoes. SPEED True, sir; I was in love with my bed: I thank you, you swinged me for my love, which makes me the bolder to chide you for yours. VALENTINE In conclusion, I stand affected to her. SPEED I would you were set, so your affection would cease. VALENTINE Last night she enjoined me to write some lines to one she loves. SPEED And have you? VALENTINE I have. SPEED Are they not lamely writ? VALENTINE No, boy, but as well as I can do them. Peace! here she comes. SPEED Aside O excellent motion! O exceeding puppet! Now will he interpret to her. Enter SILVIA VALENTINE Madam and mistress, a thousand good-morrows. SPEED Aside O, give ye good even! here's a million of manners. SILVIA Sir Valentine and servant, to you two thousand. SPEED Aside He should give her interest and she gives it him. VALENTINE As you enjoin'd me, I have writ your letter Unto the secret nameless friend of yours; Which I was much unwilling to proceed in But for my duty to your ladyship. SILVIA I thank you gentle servant: 'tis very clerkly done. VALENTINE Now trust me, madam, it came hardly off; For being ignorant to whom it goes I writ at random, very doubtfully. SILVIA Perchance you think too much of so much pains? VALENTINE No, madam; so it stead you, I will write Please you command, a thousand times as much; And yet-- SILVIA A pretty period! Well, I guess the sequel; And yet I will not name it; and yet I care not; And yet take this again; and yet I thank you, Meaning henceforth to trouble you no more. SPEED Aside And yet you will; and yet another 'yet.' VALENTINE What means your ladyship? do you not like it? SILVIA Yes, yes; the lines are very quaintly writ; But since unwillingly, take them again. Nay, take them. VALENTINE Madam, they are for you. SILVIA Ay, ay: you writ them, sir, at my request; But I will none of them; they are for you; I would have had them writ more movingly. VALENTINE Please you, I'll write your ladyship another. SILVIA And when it's writ, for my sake read it over, And if it please you, so; if not, why, so. VALENTINE If it please me, madam, what then? SILVIA Why, if it please you, take it for your labour: And so, good morrow, servant. Exit SPEED O jest unseen, inscrutable, invisible, As a nose on a man's face, or a weathercock on a steeple! My master sues to her, and she hath taught her suitor, He being her pupil, to become her tutor. O excellent device! was there ever heard a better, That my master, being scribe, to himself should write the letter? VALENTINE How now, sir? what are you reasoning with yourself? SPEED Nay, I was rhyming: 'tis you that have the reason. VALENTINE To do what? SPEED To be a spokesman for Madam Silvia. VALENTINE To whom? SPEED To yourself: why, she wooes you by a figure. VALENTINE What figure? SPEED By a letter, I should say. VALENTINE Why, she hath not writ to me? SPEED What need she, when she hath made you write to yourself? Why, do you not perceive the jest? VALENTINE No, believe me. SPEED No believing you, indeed, sir. But did you perceive her earnest? VALENTINE She gave me none, except an angry word. SPEED Why, she hath given you a letter. VALENTINE That's the letter I writ to her friend. SPEED And that letter hath she delivered, and there an end. VALENTINE I would it were no worse. SPEED I'll warrant you, 'tis as well: For often have you writ to her, and she, in modesty, Or else for want of idle time, could not again reply; Or fearing else some messenger that might her mind discover, Herself hath taught her love himself to write unto her lover. All this I speak in print, for in print I found it. Why muse you, sir? 'tis dinner-time. VALENTINE I have dined. SPEED Ay, but hearken, sir; though the chameleon Love can feed on the air, I am one that am nourished by my victuals, and would fain have meat. O, be not like your mistress; be moved, be moved. Exeunt SCENE II. Verona. JULIA'S house. Enter PROTEUS and JULIA PROTEUS Have patience, gentle Julia. JULIA I must, where is no remedy. PROTEUS When possibly I can, I will return. JULIA If you turn not, you will return the sooner. Keep this remembrance for thy Julia's sake. Giving a ring PROTEUS Why then, we'll make exchange; here, take you this. JULIA And seal the bargain with a holy kiss. PROTEUS Here is my hand for my true constancy; And when that hour o'erslips me in the day Wherein I sigh not, Julia, for thy sake, The next ensuing hour some foul mischance Torment me for my love's forgetfulness! My father stays my coming; answer not; The tide is now: nay, not thy tide of tears; That tide will stay me longer than I should. Julia, farewell! Exit JULIA What, gone without a word? Ay, so true love should do: it cannot speak; For truth hath better deeds than words to grace it. Enter PANTHINO PANTHINO Sir Proteus, you are stay'd for. PROTEUS Go; I come, I come. Alas! this parting strikes poor lovers dumb. Exeunt SCENE III. The same. A street. Enter LAUNCE, leading a dog LAUNCE Nay, 'twill be this hour ere I have done weeping; all the kind of the Launces have this very fault. I have received my proportion, like the prodigious son, and am going with Sir Proteus to the Imperial's court. I think Crab, my dog, be the sourest-natured dog that lives: my mother weeping, my father wailing, my sister crying, our maid howling, our cat wringing her hands, and all our house in a great perplexity, yet did not this cruel-hearted cur shed one tear: he is a stone, a very pebble stone, and has no more pity in him than a dog: a Jew would have wept to have seen our parting; why, my grandam, having no eyes, look you, wept herself blind at my parting. Nay, I'll show you the manner of it. This shoe is my father: no, this left shoe is my father: no, no, this left shoe is my mother: nay, that cannot be so neither: yes, it is so, it is so, it hath the worser sole. This shoe, with the hole in it, is my mother, and this my father; a vengeance on't! there 'tis: now, sit, this staff is my sister, for, look you, she is as white as a lily and as small as a wand: this hat is Nan, our maid: I am the dog: no, the dog is himself, and I am the dog--Oh! the dog is me, and I am myself; ay, so, so. Now come I to my father; Father, your blessing: now should not the shoe speak a word for weeping: now should I kiss my father; well, he weeps on. Now come I to my mother: O, that she could speak now like a wood woman! Well, I kiss her; why, there 'tis; here's my mother's breath up and down. Now come I to my sister; mark the moan she makes. Now the dog all this while sheds not a tear nor speaks a word; but see how I lay the dust with my tears. Enter PANTHINO PANTHINO Launce, away, away, aboard! thy master is shipped and thou art to post after with oars. What's the matter? why weepest thou, man? Away, ass! You'll lose the tide, if you tarry any longer. LAUNCE It is no matter if the tied were lost; for it is the unkindest tied that ever any man tied. PANTHINO What's the unkindest tide? LAUNCE Why, he that's tied here, Crab, my dog. PANTHINO Tut, man, I mean thou'lt lose the flood, and, in losing the flood, lose thy voyage, and, in losing thy voyage, lose thy master, and, in losing thy master, lose thy service, and, in losing thy service,--Why dost thou stop my mouth? LAUNCE For fear thou shouldst lose thy tongue. PANTHINO Where should I lose my tongue? LAUNCE In thy tale. PANTHINO In thy tail! LAUNCE Lose the tide, and the voyage, and the master, and the service, and the tied! Why, man, if the river were dry, I am able to fill it with my tears; if the wind were down, I could drive the boat with my sighs. PANTHINO Come, come away, man; I was sent to call thee. LAUNCE Sir, call me what thou darest. PANTHINO Wilt thou go? LAUNCE Well, I will go. Exeunt SCENE IV. Milan. The DUKE's palace. Enter SILVIA, VALENTINE, THURIO, and SPEED SILVIA Servant! VALENTINE Mistress? SPEED Master, Sir Thurio frowns on you. VALENTINE Ay, boy, it's for love. SPEED Not of you. VALENTINE Of my mistress, then. SPEED 'Twere good you knocked him. Exit SILVIA Servant, you are sad. VALENTINE Indeed, madam, I seem so. THURIO Seem you that you are not? VALENTINE Haply I do. THURIO So do counterfeits. VALENTINE So do you. THURIO What seem I that I am not? VALENTINE Wise. THURIO What instance of the contrary? VALENTINE Your folly. THURIO And how quote you my folly? VALENTINE I quote it in your jerkin. THURIO My jerkin is a doublet. VALENTINE Well, then, I'll double your folly. THURIO How? SILVIA What, angry, Sir Thurio! do you change colour? VALENTINE Give him leave, madam; he is a kind of chameleon. THURIO That hath more mind to feed on your blood than live in your air. VALENTINE You have said, sir. THURIO Ay, sir, and done too, for this time. VALENTINE I know it well, sir; you always end ere you begin. SILVIA A fine volley of words, gentlemen, and quickly shot off. VALENTINE 'Tis indeed, madam; we thank the giver. SILVIA Who is that, servant? VALENTINE Yourself, sweet lady; for you gave the fire. Sir Thurio borrows his wit from your ladyship's looks, and spends what he borrows kindly in your company. THURIO Sir, if you spend word for word with me, I shall make your wit bankrupt. VALENTINE I know it well, sir; you have an exchequer of words, and, I think, no other treasure to give your followers, for it appears by their bare liveries, that they live by your bare words. SILVIA No more, gentlemen, no more:--here comes my father. Enter DUKE DUKE Now, daughter Silvia, you are hard beset. Sir Valentine, your father's in good health: What say you to a letter from your friends Of much good news? VALENTINE My lord, I will be thankful. To any happy messenger from thence. DUKE Know ye Don Antonio, your countryman? VALENTINE Ay, my good lord, I know the gentleman To be of worth and worthy estimation And not without desert so well reputed. DUKE Hath he not a son? VALENTINE Ay, my good lord; a son that well deserves The honour and regard of such a father. DUKE You know him well? VALENTINE I know him as myself; for from our infancy We have conversed and spent our hours together: And though myself have been an idle truant, Omitting the sweet benefit of time To clothe mine age with angel-like perfection, Yet hath Sir Proteus, for that's his name, Made use and fair advantage of his days; His years but young, but his experience old; His head unmellow'd, but his judgment ripe; And, in a word, for far behind his worth Comes all the praises that I now bestow, He is complete in feature and in mind With all good grace to grace a gentleman. DUKE Beshrew me, sir, but if he make this good, He is as worthy for an empress' love As meet to be an emperor's counsellor. Well, sir, this gentleman is come to me, With commendation from great potentates; And here he means to spend his time awhile: I think 'tis no unwelcome news to you. VALENTINE Should I have wish'd a thing, it had been he. DUKE Welcome him then according to his worth. Silvia, I speak to you, and you, Sir Thurio; For Valentine, I need not cite him to it: I will send him hither to you presently. Exit VALENTINE This is the gentleman I told your ladyship Had come along with me, but that his mistress Did hold his eyes lock'd in her crystal looks. SILVIA Belike that now she hath enfranchised them Upon some other pawn for fealty. VALENTINE Nay, sure, I think she holds them prisoners still. SILVIA Nay, then he should be blind; and, being blind How could he see his way to seek out you? VALENTINE Why, lady, Love hath twenty pair of eyes. THURIO They say that Love hath not an eye at all. VALENTINE To see such lovers, Thurio, as yourself: Upon a homely object Love can wink. SILVIA Have done, have done; here comes the gentleman. Exit THURIO Enter PROTEUS VALENTINE Welcome, dear Proteus! Mistress, I beseech you, Confirm his welcome with some special favour. SILVIA His worth is warrant for his welcome hither, If this be he you oft have wish'd to hear from. VALENTINE Mistress, it is: sweet lady, entertain him To be my fellow-servant to your ladyship. SILVIA Too low a mistress for so high a servant. PROTEUS Not so, sweet lady: but too mean a servant To have a look of such a worthy mistress. VALENTINE Leave off discourse of disability: Sweet lady, entertain him for your servant. PROTEUS My duty will I boast of; nothing else. SILVIA And duty never yet did want his meed: Servant, you are welcome to a worthless mistress. PROTEUS I'll die on him that says so but yourself. SILVIA That you are welcome? PROTEUS That you are worthless. Re-enter THURIO THURIO Madam, my lord your father would speak with you. SILVIA I wait upon his pleasure. Come, Sir Thurio, Go with me. Once more, new servant, welcome: I'll leave you to confer of home affairs; When you have done, we look to hear from you. PROTEUS We'll both attend upon your ladyship. Exeunt SILVIA and THURIO VALENTINE Now, tell me, how do all from whence you came? PROTEUS Your friends are well and have them much commended. VALENTINE And how do yours? PROTEUS I left them all in health. VALENTINE How does your lady? and how thrives your love? PROTEUS My tales of love were wont to weary you; I know you joy not in a love discourse. VALENTINE Ay, Proteus, but that life is alter'd now: I have done penance for contemning Love, Whose high imperious thoughts have punish'd me With bitter fasts, with penitential groans, With nightly tears and daily heart-sore sighs; For in revenge of my contempt of love, Love hath chased sleep from my enthralled eyes And made them watchers of mine own heart's sorrow. O gentle Proteus, Love's a mighty lord, And hath so humbled me, as, I confess, There is no woe to his correction, Nor to his service no such joy on earth. Now no discourse, except it be of love; Now can I break my fast, dine, sup and sleep, Upon the very naked name of love. PROTEUS Enough; I read your fortune in your eye. Was this the idol that you worship so? VALENTINE Even she; and is she not a heavenly saint? PROTEUS No; but she is an earthly paragon. VALENTINE Call her divine. PROTEUS I will not flatter her. VALENTINE O, flatter me; for love delights in praises. PROTEUS When I was sick, you gave me bitter pills, And I must minister the like to you. VALENTINE Then speak the truth by her; if not divine, Yet let her be a principality, Sovereign to all the creatures on the earth. PROTEUS Except my mistress. VALENTINE Sweet, except not any; Except thou wilt except against my love. PROTEUS Have I not reason to prefer mine own? VALENTINE And I will help thee to prefer her too: She shall be dignified with this high honour-- To bear my lady's train, lest the base earth Should from her vesture chance to steal a kiss And, of so great a favour growing proud, Disdain to root the summer-swelling flower And make rough winter everlastingly. PROTEUS Why, Valentine, what braggardism is this? VALENTINE Pardon me, Proteus: all I can is nothing To her whose worth makes other worthies nothing; She is alone. PROTEUS Then let her alone. VALENTINE Not for the world: why, man, she is mine own, And I as rich in having such a jewel As twenty seas, if all their sand were pearl, The water nectar and the rocks pure gold. Forgive me that I do not dream on thee, Because thou see'st me dote upon my love. My foolish rival, that her father likes Only for his possessions are so huge, Is gone with her along, and I must after, For love, thou know'st, is full of jealousy. PROTEUS But she loves you? VALENTINE Ay, and we are betroth'd: nay, more, our, marriage-hour, With all the cunning manner of our flight, Determined of; how I must climb her window, The ladder made of cords, and all the means Plotted and 'greed on for my happiness. Good Proteus, go with me to my chamber, In these affairs to aid me with thy counsel. PROTEUS Go on before; I shall inquire you forth: I must unto the road, to disembark Some necessaries that I needs must use, And then I'll presently attend you. VALENTINE Will you make haste? PROTEUS I will. Exit VALENTINE Even as one heat another heat expels, Or as one nail by strength drives out another, So the remembrance of my former love Is by a newer object quite forgotten. Is it mine, or Valentine's praise, Her true perfection, or my false transgression, That makes me reasonless to reason thus? She is fair; and so is Julia that I love-- That I did love, for now my love is thaw'd; Which, like a waxen image, 'gainst a fire, Bears no impression of the thing it was. Methinks my zeal to Valentine is cold, And that I love him not as I was wont. O, but I love his lady too too much, And that's the reason I love him so little. How shall I dote on her with more advice, That thus without advice begin to love her! 'Tis but her picture I have yet beheld, And that hath dazzled my reason's light; But when I look on her perfections, There is no reason but I shall be blind. If I can cheque my erring love, I will; If not, to compass her I'll use my skill. Exit SCENE V. The same. A street. Enter SPEED and LAUNCE severally SPEED Launce! by mine honesty, welcome to Milan! LAUNCE Forswear not thyself, sweet youth, for I am not welcome. I reckon this always, that a man is never undone till he be hanged, nor never welcome to a place till some certain shot be paid and the hostess say 'Welcome!' SPEED Come on, you madcap, I'll to the alehouse with you presently; where, for one shot of five pence, thou shalt have five thousand welcomes. But, sirrah, how did thy master part with Madam Julia? LAUNCE Marry, after they closed in earnest, they parted very fairly in jest. SPEED But shall she marry him? LAUNCE No. SPEED How then? shall he marry her? LAUNCE No, neither. SPEED What, are they broken? LAUNCE No, they are both as whole as a fish. SPEED Why, then, how stands the matter with them? LAUNCE Marry, thus: when it stands well with him, it stands well with her. SPEED What an ass art thou! I understand thee not. LAUNCE What a block art thou, that thou canst not! My staff understands me. SPEED What thou sayest? LAUNCE Ay, and what I do too: look thee, I'll but lean, and my staff understands me. SPEED It stands under thee, indeed. LAUNCE Why, stand-under and under-stand is all one. SPEED But tell me true, will't be a match? LAUNCE Ask my dog: if he say ay, it will! if he say no, it will; if he shake his tail and say nothing, it will. SPEED The conclusion is then that it will. LAUNCE Thou shalt never get such a secret from me but by a parable. SPEED 'Tis well that I get it so. But, Launce, how sayest thou, that my master is become a notable lover? LAUNCE I never knew him otherwise. SPEED Than how? LAUNCE A notable lubber, as thou reportest him to be. SPEED Why, thou whoreson ass, thou mistakest me. LAUNCE Why, fool, I meant not thee; I meant thy master. SPEED I tell thee, my master is become a hot lover. LAUNCE Why, I tell thee, I care not though he burn himself in love. If thou wilt, go with me to the alehouse; if not, thou art an Hebrew, a Jew, and not worth the name of a Christian. SPEED Why? LAUNCE Because thou hast not so much charity in thee as to go to the ale with a Christian. Wilt thou go? SPEED At thy service. Exeunt SCENE VI. The same. The DUKE'S palace. Enter PROTEUS PROTEUS To leave my Julia, shall I be forsworn; To love fair Silvia, shall I be forsworn; To wrong my friend, I shall be much forsworn; And even that power which gave me first my oath Provokes me to this threefold perjury; Love bade me swear and Love bids me forswear. O sweet-suggesting Love, if thou hast sinned, Teach me, thy tempted subject, to excuse it! At first I did adore a twinkling star, But now I worship a celestial sun. Unheedful vows may heedfully be broken, And he wants wit that wants resolved will To learn his wit to exchange the bad for better. Fie, fie, unreverend tongue! to call her bad, Whose sovereignty so oft thou hast preferr'd With twenty thousand soul-confirming oaths. I cannot leave to love, and yet I do; But there I leave to love where I should love. Julia I lose and Valentine I lose: If I keep them, I needs must lose myself; If I lose them, thus find I by their loss For Valentine myself, for Julia Silvia. I to myself am dearer than a friend, For love is still most precious in itself; And Silvia--witness Heaven, that made her fair!-- Shows Julia but a swarthy Ethiope. I will forget that Julia is alive, Remembering that my love to her is dead; And Valentine I'll hold an enemy, Aiming at Silvia as a sweeter friend. I cannot now prove constant to myself, Without some treachery used to Valentine. This night he meaneth with a corded ladder To climb celestial Silvia's chamber-window, Myself in counsel, his competitor. Now presently I'll give her father notice Of their disguising and pretended flight; Who, all enraged, will banish Valentine; For Thurio, he intends, shall wed his daughter; But, Valentine being gone, I'll quickly cross By some sly trick blunt Thurio's dull proceeding. Love, lend me wings to make my purpose swift, As thou hast lent me wit to plot this drift! Exit SCENE VII. Verona. JULIA'S house. Enter JULIA and LUCETTA JULIA Counsel, Lucetta; gentle girl, assist me; And even in kind love I do conjure thee, Who art the table wherein all my thoughts Are visibly character'd and engraved, To lesson me and tell me some good mean How, with my honour, I may undertake A journey to my loving Proteus. LUCETTA Alas, the way is wearisome and long! JULIA A true-devoted pilgrim is not weary To measure kingdoms with his feeble steps; Much less shall she that hath Love's wings to fly, And when the flight is made to one so dear, Of such divine perfection, as Sir Proteus. LUCETTA Better forbear till Proteus make return. JULIA O, know'st thou not his looks are my soul's food? Pity the dearth that I have pined in, By longing for that food so long a time. Didst thou but know the inly touch of love, Thou wouldst as soon go kindle fire with snow As seek to quench the fire of love with words. LUCETTA I do not seek to quench your love's hot fire, But qualify the fire's extreme rage, Lest it should burn above the bounds of reason. JULIA The more thou damm'st it up, the more it burns. The current that with gentle murmur glides, Thou know'st, being stopp'd, impatiently doth rage; But when his fair course is not hindered, He makes sweet music with the enamell'ed stones, Giving a gentle kiss to every sedge He overtaketh in his pilgrimage, And so by many winding nooks he strays With willing sport to the wild ocean. Then let me go and hinder not my course I'll be as patient as a gentle stream And make a pastime of each weary step, Till the last step have brought me to my love; And there I'll rest, as after much turmoil A blessed soul doth in Elysium. LUCETTA But in what habit will you go along? JULIA Not like a woman; for I would prevent The loose encounters of lascivious men: Gentle Lucetta, fit me with such weeds As may beseem some well-reputed page. LUCETTA Why, then, your ladyship must cut your hair. JULIA No, girl, I'll knit it up in silken strings With twenty odd-conceited true-love knots. To be fantastic may become a youth Of greater time than I shall show to be. LUCETTA What fashion, madam shall I make your breeches? JULIA That fits as well as 'Tell me, good my lord, What compass will you wear your farthingale?' Why even what fashion thou best likest, Lucetta. LUCETTA You must needs have them with a codpiece, madam. JULIA Out, out, Lucetta! that would be ill-favour'd. LUCETTA A round hose, madam, now's not worth a pin, Unless you have a codpiece to stick pins on. JULIA Lucetta, as thou lovest me, let me have What thou thinkest meet and is most mannerly. But tell me, wench, how will the world repute me For undertaking so unstaid a journey? I fear me, it will make me scandalized. LUCETTA If you think so, then stay at home and go not. JULIA Nay, that I will not. LUCETTA Then never dream on infamy, but go. If Proteus like your journey when you come, No matter who's displeased when you are gone: I fear me, he will scarce be pleased withal. JULIA That is the least, Lucetta, of my fear: A thousand oaths, an ocean of his tears And instances of infinite of love Warrant me welcome to my Proteus. LUCETTA All these are servants to deceitful men. JULIA Base men, that use them to so base effect! But truer stars did govern Proteus' birth His words are bonds, his oaths are oracles, His love sincere, his thoughts immaculate, His tears pure messengers sent from his heart, His heart as far from fraud as heaven from earth. LUCETTA Pray heaven he prove so, when you come to him! JULIA Now, as thou lovest me, do him not that wrong To bear a hard opinion of his truth: Only deserve my love by loving him; And presently go with me to my chamber, To take a note of what I stand in need of, To furnish me upon my longing journey. All that is mine I leave at thy dispose, My goods, my lands, my reputation; Only, in lieu thereof, dispatch me hence. Come, answer not, but to it presently! I am impatient of my tarriance. Exeunt ACT III SCENE I. Milan. The DUKE's palace. Enter DUKE, THURIO, and PROTEUS DUKE Sir Thurio, give us leave, I pray, awhile; We have some secrets to confer about. Exit THURIO Now, tell me, Proteus, what's your will with me? PROTEUS My gracious lord, that which I would discover The law of friendship bids me to conceal; But when I call to mind your gracious favours Done to me, undeserving as I am, My duty pricks me on to utter that Which else no worldly good should draw from me. Know, worthy prince, Sir Valentine, my friend, This night intends to steal away your daughter: Myself am one made privy to the plot. I know you have determined to bestow her On Thurio, whom your gentle daughter hates; And should she thus be stol'n away from you, It would be much vexation to your age. Thus, for my duty's sake, I rather chose To cross my friend in his intended drift Than, by concealing it, heap on your head A pack of sorrows which would press you down, Being unprevented, to your timeless grave. DUKE Proteus, I thank thee for thine honest care; Which to requite, command me while I live. This love of theirs myself have often seen, Haply when they have judged me fast asleep, And oftentimes have purposed to forbid Sir Valentine her company and my court: But fearing lest my jealous aim might err And so unworthily disgrace the man, A rashness that I ever yet have shunn'd, I gave him gentle looks, thereby to find That which thyself hast now disclosed to me. And, that thou mayst perceive my fear of this, Knowing that tender youth is soon suggested, I nightly lodge her in an upper tower, The key whereof myself have ever kept; And thence she cannot be convey'd away. PROTEUS Know, noble lord, they have devised a mean How he her chamber-window will ascend And with a corded ladder fetch her down; For which the youthful lover now is gone And this way comes he with it presently; Where, if it please you, you may intercept him. But, good my Lord, do it so cunningly That my discovery be not aimed at; For love of you, not hate unto my friend, Hath made me publisher of this pretence. DUKE Upon mine honour, he shall never know That I had any light from thee of this. PROTEUS Adieu, my Lord; Sir Valentine is coming. Exit Enter VALENTINE DUKE Sir Valentine, whither away so fast? VALENTINE Please it your grace, there is a messenger That stays to bear my letters to my friends, And I am going to deliver them. DUKE Be they of much import? VALENTINE The tenor of them doth but signify My health and happy being at your court. DUKE Nay then, no matter; stay with me awhile; I am to break with thee of some affairs That touch me near, wherein thou must be secret. 'Tis not unknown to thee that I have sought To match my friend Sir Thurio to my daughter. VALENTINE I know it well, my Lord; and, sure, the match Were rich and honourable; besides, the gentleman Is full of virtue, bounty, worth and qualities Beseeming such a wife as your fair daughter: Cannot your Grace win her to fancy him? DUKE No, trust me; she is peevish, sullen, froward, Proud, disobedient, stubborn, lacking duty, Neither regarding that she is my child Nor fearing me as if I were her father; And, may I say to thee, this pride of hers, Upon advice, hath drawn my love from her; And, where I thought the remnant of mine age Should have been cherish'd by her child-like duty, I now am full resolved to take a wife And turn her out to who will take her in: Then let her beauty be her wedding-dower; For me and my possessions she esteems not. VALENTINE What would your Grace have me to do in this? DUKE There is a lady in Verona here Whom I affect; but she is nice and coy And nought esteems my aged eloquence: Now therefore would I have thee to my tutor-- For long agone I have forgot to court; Besides, the fashion of the time is changed-- How and which way I may bestow myself To be regarded in her sun-bright eye. VALENTINE Win her with gifts, if she respect not words: Dumb jewels often in their silent kind More than quick words do move a woman's mind. DUKE But she did scorn a present that I sent her. VALENTINE A woman sometimes scorns what best contents her. Send her another; never give her o'er; For scorn at first makes after-love the more. If she do frown, 'tis not in hate of you, But rather to beget more love in you: If she do chide, 'tis not to have you gone; For why, the fools are mad, if left alone. Take no repulse, whatever she doth say; For 'get you gone,' she doth not mean 'away!' Flatter and praise, commend, extol their graces; Though ne'er so black, say they have angels' faces. That man that hath a tongue, I say, is no man, If with his tongue he cannot win a woman. DUKE But she I mean is promised by her friends Unto a youthful gentleman of worth, And kept severely from resort of men, That no man hath access by day to her. VALENTINE Why, then, I would resort to her by night. DUKE Ay, but the doors be lock'd and keys kept safe, That no man hath recourse to her by night. VALENTINE What lets but one may enter at her window? DUKE Her chamber is aloft, far from the ground, And built so shelving that one cannot climb it Without apparent hazard of his life. VALENTINE Why then, a ladder quaintly made of cords, To cast up, with a pair of anchoring hooks, Would serve to scale another Hero's tower, So bold Leander would adventure it. DUKE Now, as thou art a gentleman of blood, Advise me where I may have such a ladder. VALENTINE When would you use it? pray, sir, tell me that. DUKE This very night; for Love is like a child, That longs for every thing that he can come by. VALENTINE By seven o'clock I'll get you such a ladder. DUKE But, hark thee; I will go to her alone: How shall I best convey the ladder thither? VALENTINE It will be light, my lord, that you may bear it Under a cloak that is of any length. DUKE A cloak as long as thine will serve the turn? VALENTINE Ay, my good lord. DUKE Then let me see thy cloak: I'll get me one of such another length. VALENTINE Why, any cloak will serve the turn, my lord. DUKE How shall I fashion me to wear a cloak? I pray thee, let me feel thy cloak upon me. What letter is this same? What's here? 'To Silvia'! And here an engine fit for my proceeding. I'll be so bold to break the seal for once. Reads 'My thoughts do harbour with my Silvia nightly, And slaves they are to me that send them flying: O, could their master come and go as lightly, Himself would lodge where senseless they are lying! My herald thoughts in thy pure bosom rest them: While I, their king, that hither them importune, Do curse the grace that with such grace hath bless'd them, Because myself do want my servants' fortune: I curse myself, for they are sent by me, That they should harbour where their lord would be.' What's here? 'Silvia, this night I will enfranchise thee.' 'Tis so; and here's the ladder for the purpose. Why, Phaeton,--for thou art Merops' son,-- Wilt thou aspire to guide the heavenly car And with thy daring folly burn the world? Wilt thou reach stars, because they shine on thee? Go, base intruder! overweening slave! Bestow thy fawning smiles on equal mates, And think my patience, more than thy desert, Is privilege for thy departure hence: Thank me for this more than for all the favours Which all too much I have bestow'd on thee. But if thou linger in my territories Longer than swiftest expedition Will give thee time to leave our royal court, By heaven! my wrath shall far exceed the love I ever bore my daughter or thyself. Be gone! I will not hear thy vain excuse; But, as thou lovest thy life, make speed from hence. Exit VALENTINE And why not death rather than living torment? To die is to be banish'd from myself; And Silvia is myself: banish'd from her Is self from self: a deadly banishment! What light is light, if Silvia be not seen? What joy is joy, if Silvia be not by? Unless it be to think that she is by And feed upon the shadow of perfection Except I be by Silvia in the night, There is no music in the nightingale; Unless I look on Silvia in the day, There is no day for me to look upon; She is my essence, and I leave to be, If I be not by her fair influence Foster'd, illumined, cherish'd, kept alive. I fly not death, to fly his deadly doom: Tarry I here, I but attend on death: But, fly I hence, I fly away from life. Enter PROTEUS and LAUNCE PROTEUS Run, boy, run, run, and seek him out. LAUNCE Soho, soho! PROTEUS What seest thou? LAUNCE Him we go to find: there's not a hair on's head but 'tis a Valentine. PROTEUS Valentine? VALENTINE No. PROTEUS Who then? his spirit? VALENTINE Neither. PROTEUS What then? VALENTINE Nothing. LAUNCE Can nothing speak? Master, shall I strike? PROTEUS Who wouldst thou strike? LAUNCE Nothing. PROTEUS Villain, forbear. LAUNCE Why, sir, I'll strike nothing: I pray you,-- PROTEUS Sirrah, I say, forbear. Friend Valentine, a word. VALENTINE My ears are stopt and cannot hear good news, So much of bad already hath possess'd them. PROTEUS Then in dumb silence will I bury mine, For they are harsh, untuneable and bad. VALENTINE Is Silvia dead? PROTEUS No, Valentine. VALENTINE No Valentine, indeed, for sacred Silvia. Hath she forsworn me? PROTEUS No, Valentine. VALENTINE No Valentine, if Silvia have forsworn me. What is your news? LAUNCE Sir, there is a proclamation that you are vanished. PROTEUS That thou art banished--O, that's the news!-- From hence, from Silvia and from me thy friend. VALENTINE O, I have fed upon this woe already, And now excess of it will make me surfeit. Doth Silvia know that I am banished? PROTEUS Ay, ay; and she hath offer'd to the doom-- Which, unreversed, stands in effectual force-- A sea of melting pearl, which some call tears: Those at her father's churlish feet she tender'd; With them, upon her knees, her humble self; Wringing her hands, whose whiteness so became them As if but now they waxed pale for woe: But neither bended knees, pure hands held up, Sad sighs, deep groans, nor silver-shedding tears, Could penetrate her uncompassionate sire; But Valentine, if he be ta'en, must die. Besides, her intercession chafed him so, When she for thy repeal was suppliant, That to close prison he commanded her, With many bitter threats of biding there. VALENTINE No more; unless the next word that thou speak'st Have some malignant power upon my life: If so, I pray thee, breathe it in mine ear, As ending anthem of my endless dolour. PROTEUS Cease to lament for that thou canst not help, And study help for that which thou lament'st. Time is the nurse and breeder of all good. Here if thou stay, thou canst not see thy love; Besides, thy staying will abridge thy life. Hope is a lover's staff; walk hence with that And manage it against despairing thoughts. Thy letters may be here, though thou art hence; Which, being writ to me, shall be deliver'd Even in the milk-white bosom of thy love. The time now serves not to expostulate: Come, I'll convey thee through the city-gate; And, ere I part with thee, confer at large Of all that may concern thy love-affairs. As thou lovest Silvia, though not for thyself, Regard thy danger, and along with me! VALENTINE I pray thee, Launce, an if thou seest my boy, Bid him make haste and meet me at the North-gate. PROTEUS Go, sirrah, find him out. Come, Valentine. VALENTINE O my dear Silvia! Hapless Valentine! Exeunt VALENTINE and PROTEUS LAUNCE I am but a fool, look you; and yet I have the wit to think my master is a kind of a knave: but that's all one, if he be but one knave. He lives not now that knows me to be in love; yet I am in love; but a team of horse shall not pluck that from me; nor who 'tis I love; and yet 'tis a woman; but what woman, I will not tell myself; and yet 'tis a milkmaid; yet 'tis not a maid, for she hath had gossips; yet 'tis a maid, for she is her master's maid, and serves for wages. She hath more qualities than a water-spaniel; which is much in a bare Christian. Pulling out a paper Here is the cate-log of her condition. 'Imprimis: She can fetch and carry.' Why, a horse can do no more: nay, a horse cannot fetch, but only carry; therefore is she better than a jade. 'Item: She can milk;' look you, a sweet virtue in a maid with clean hands. Enter SPEED SPEED How now, Signior Launce! what news with your mastership? LAUNCE With my master's ship? why, it is at sea. SPEED Well, your old vice still; mistake the word. What news, then, in your paper? LAUNCE The blackest news that ever thou heardest. SPEED Why, man, how black? LAUNCE Why, as black as ink. SPEED Let me read them. LAUNCE Fie on thee, jolt-head! thou canst not read. SPEED Thou liest; I can. LAUNCE I will try thee. Tell me this: who begot thee? SPEED Marry, the son of my grandfather. LAUNCE O illiterate loiterer! it was the son of thy grandmother: this proves that thou canst not read. SPEED Come, fool, come; try me in thy paper. LAUNCE There; and St. Nicholas be thy speed! SPEED Reads 'Imprimis: She can milk.' LAUNCE Ay, that she can. SPEED 'Item: She brews good ale.' LAUNCE And thereof comes the proverb: 'Blessing of your heart, you brew good ale.' SPEED 'Item: She can sew.' LAUNCE That's as much as to say, Can she so? SPEED 'Item: She can knit.' LAUNCE What need a man care for a stock with a wench, when she can knit him a stock? SPEED 'Item: She can wash and scour.' LAUNCE A special virtue: for then she need not be washed and scoured. SPEED 'Item: She can spin.' LAUNCE Then may I set the world on wheels, when she can spin for her living. SPEED 'Item: She hath many nameless virtues.' LAUNCE That's as much as to say, bastard virtues; that, indeed, know not their fathers and therefore have no names. SPEED 'Here follow her vices.' LAUNCE Close at the heels of her virtues. SPEED 'Item: She is not to be kissed fasting in respect of her breath.' LAUNCE Well, that fault may be mended with a breakfast. Read on. SPEED 'Item: She hath a sweet mouth.' LAUNCE That makes amends for her sour breath. SPEED 'Item: She doth talk in her sleep.' LAUNCE It's no matter for that, so she sleep not in her talk. SPEED 'Item: She is slow in words.' LAUNCE O villain, that set this down among her vices! To be slow in words is a woman's only virtue: I pray thee, out with't, and place it for her chief virtue. SPEED 'Item: She is proud.' LAUNCE Out with that too; it was Eve's legacy, and cannot be ta'en from her. SPEED 'Item: She hath no teeth.' LAUNCE I care not for that neither, because I love crusts. SPEED 'Item: She is curst.' LAUNCE Well, the best is, she hath no teeth to bite. SPEED 'Item: She will often praise her liquor.' LAUNCE If her liquor be good, she shall: if she will not, I will; for good things should be praised. SPEED 'Item: She is too liberal.' LAUNCE Of her tongue she cannot, for that's writ down she is slow of; of her purse she shall not, for that I'll keep shut: now, of another thing she may, and that cannot I help. Well, proceed. SPEED 'Item: She hath more hair than wit, and more faults than hairs, and more wealth than faults.' LAUNCE Stop there; I'll have her: she was mine, and not mine, twice or thrice in that last article. Rehearse that once more. SPEED 'Item: She hath more hair than wit,'-- LAUNCE More hair than wit? It may be; I'll prove it. The cover of the salt hides the salt, and therefore it is more than the salt; the hair that covers the wit is more than the wit, for the greater hides the less. What's next? SPEED 'And more faults than hairs,'-- LAUNCE That's monstrous: O, that that were out! SPEED 'And more wealth than faults.' LAUNCE Why, that word makes the faults gracious. Well, I'll have her; and if it be a match, as nothing is impossible,-- SPEED What then? LAUNCE Why, then will I tell thee--that thy master stays for thee at the North-gate. SPEED For me? LAUNCE For thee! ay, who art thou? he hath stayed for a better man than thee. SPEED And must I go to him? LAUNCE Thou must run to him, for thou hast stayed so long that going will scarce serve the turn. SPEED Why didst not tell me sooner? pox of your love letters! Exit LAUNCE Now will he be swinged for reading my letter; an unmannerly slave, that will thrust himself into secrets! I'll after, to rejoice in the boy's correction. Exit SCENE II. The same. The DUKE's palace. Enter DUKE and THURIO DUKE Sir Thurio, fear not but that she will love you, Now Valentine is banish'd from her sight. THURIO Since his exile she hath despised me most, Forsworn my company and rail'd at me, That I am desperate of obtaining her. DUKE This weak impress of love is as a figure Trenched in ice, which with an hour's heat Dissolves to water and doth lose his form. A little time will melt her frozen thoughts And worthless Valentine shall be forgot. Enter PROTEUS How now, Sir Proteus! Is your countryman According to our proclamation gone? PROTEUS Gone, my good lord. DUKE My daughter takes his going grievously. PROTEUS A little time, my lord, will kill that grief. DUKE So I believe; but Thurio thinks not so. Proteus, the good conceit I hold of thee-- For thou hast shown some sign of good desert-- Makes me the better to confer with thee. PROTEUS Longer than I prove loyal to your grace Let me not live to look upon your grace. DUKE Thou know'st how willingly I would effect The match between Sir Thurio and my daughter. PROTEUS I do, my lord. DUKE And also, I think, thou art not ignorant How she opposes her against my will PROTEUS She did, my lord, when Valentine was here. DUKE Ay, and perversely she persevers so. What might we do to make the girl forget The love of Valentine and love Sir Thurio? PROTEUS The best way is to slander Valentine With falsehood, cowardice and poor descent, Three things that women highly hold in hate. DUKE Ay, but she'll think that it is spoke in hate. PROTEUS Ay, if his enemy deliver it: Therefore it must with circumstance be spoken By one whom she esteemeth as his friend. DUKE Then you must undertake to slander him. PROTEUS And that, my lord, I shall be loath to do: 'Tis an ill office for a gentleman, Especially against his very friend. DUKE Where your good word cannot advantage him, Your slander never can endamage him; Therefore the office is indifferent, Being entreated to it by your friend. PROTEUS You have prevail'd, my lord; if I can do it By ought that I can speak in his dispraise, She shall not long continue love to him. But say this weed her love from Valentine, It follows not that she will love Sir Thurio. THURIO Therefore, as you unwind her love from him, Lest it should ravel and be good to none, You must provide to bottom it on me; Which must be done by praising me as much As you in worth dispraise Sir Valentine. DUKE And, Proteus, we dare trust you in this kind, Because we know, on Valentine's report, You are already Love's firm votary And cannot soon revolt and change your mind. Upon this warrant shall you have access Where you with Silvia may confer at large; For she is lumpish, heavy, melancholy, And, for your friend's sake, will be glad of you; Where you may temper her by your persuasion To hate young Valentine and love my friend. PROTEUS As much as I can do, I will effect: But you, Sir Thurio, are not sharp enough; You must lay lime to tangle her desires By wailful sonnets, whose composed rhymes Should be full-fraught with serviceable vows. DUKE Ay, Much is the force of heaven-bred poesy. PROTEUS Say that upon the altar of her beauty You sacrifice your tears, your sighs, your heart: Write till your ink be dry, and with your tears Moist it again, and frame some feeling line That may discover such integrity: For Orpheus' lute was strung with poets' sinews, Whose golden touch could soften steel and stones, Make tigers tame and huge leviathans Forsake unsounded deeps to dance on sands. After your dire-lamenting elegies, Visit by night your lady's chamber-window With some sweet concert; to their instruments Tune a deploring dump: the night's dead silence Will well become such sweet-complaining grievance. This, or else nothing, will inherit her. DUKE This discipline shows thou hast been in love. THURIO And thy advice this night I'll put in practise. Therefore, sweet Proteus, my direction-giver, Let us into the city presently To sort some gentlemen well skill'd in music. I have a sonnet that will serve the turn To give the onset to thy good advice. DUKE About it, gentlemen! PROTEUS We'll wait upon your grace till after supper, And afterward determine our proceedings. DUKE Even now about it! I will pardon you. Exeunt ACT IV SCENE I. The frontiers of Mantua. A forest. Enter certain Outlaws First Outlaw Fellows, stand fast; I see a passenger. Second Outlaw If there be ten, shrink not, but down with 'em. Enter VALENTINE and SPEED Third Outlaw Stand, sir, and throw us that you have about ye: If not: we'll make you sit and rifle you. SPEED Sir, we are undone; these are the villains That all the travellers do fear so much. VALENTINE My friends,-- First Outlaw That's not so, sir: we are your enemies. Second Outlaw Peace! we'll hear him. Third Outlaw Ay, by my beard, will we, for he's a proper man. VALENTINE Then know that I have little wealth to lose: A man I am cross'd with adversity; My riches are these poor habiliments, Of which if you should here disfurnish me, You take the sum and substance that I have. Second Outlaw Whither travel you? VALENTINE To Verona. First Outlaw Whence came you? VALENTINE From Milan. Third Outlaw Have you long sojourned there? VALENTINE Some sixteen months, and longer might have stay'd, If crooked fortune had not thwarted me. First Outlaw What, were you banish'd thence? VALENTINE I was. Second Outlaw For what offence? VALENTINE For that which now torments me to rehearse: I kill'd a man, whose death I much repent; But yet I slew him manfully in fight, Without false vantage or base treachery. First Outlaw Why, ne'er repent it, if it were done so. But were you banish'd for so small a fault? VALENTINE I was, and held me glad of such a doom. Second Outlaw Have you the tongues? VALENTINE My youthful travel therein made me happy, Or else I often had been miserable. Third Outlaw By the bare scalp of Robin Hood's fat friar, This fellow were a king for our wild faction! First Outlaw We'll have him. Sirs, a word. SPEED Master, be one of them; it's an honourable kind of thievery. VALENTINE Peace, villain! Second Outlaw Tell us this: have you any thing to take to? VALENTINE Nothing but my fortune. Third Outlaw Know, then, that some of us are gentlemen, Such as the fury of ungovern'd youth Thrust from the company of awful men: Myself was from Verona banished For practising to steal away a lady, An heir, and near allied unto the duke. Second Outlaw And I from Mantua, for a gentleman, Who, in my mood, I stabb'd unto the heart. First Outlaw And I for such like petty crimes as these, But to the purpose--for we cite our faults, That they may hold excus'd our lawless lives; And partly, seeing you are beautified With goodly shape and by your own report A linguist and a man of such perfection As we do in our quality much want-- Second Outlaw Indeed, because you are a banish'd man, Therefore, above the rest, we parley to you: Are you content to be our general? To make a virtue of necessity And live, as we do, in this wilderness? Third Outlaw What say'st thou? wilt thou be of our consort? Say ay, and be the captain of us all: We'll do thee homage and be ruled by thee, Love thee as our commander and our king. First Outlaw But if thou scorn our courtesy, thou diest. Second Outlaw Thou shalt not live to brag what we have offer'd. VALENTINE I take your offer and will live with you, Provided that you do no outrages On silly women or poor passengers. Third Outlaw No, we detest such vile base practises. Come, go with us, we'll bring thee to our crews, And show thee all the treasure we have got, Which, with ourselves, all rest at thy dispose. Exeunt SCENE II. Milan. Outside the DUKE's palace, under SILVIA's chamber. Enter PROTEUS PROTEUS Already have I been false to Valentine And now I must be as unjust to Thurio. Under the colour of commending him, I have access my own love to prefer: But Silvia is too fair, too true, too holy, To be corrupted with my worthless gifts. When I protest true loyalty to her, She twits me with my falsehood to my friend; When to her beauty I commend my vows, She bids me think how I have been forsworn In breaking faith with Julia whom I loved: And notwithstanding all her sudden quips, The least whereof would quell a lover's hope, Yet, spaniel-like, the more she spurns my love, The more it grows and fawneth on her still. But here comes Thurio: now must we to her window, And give some evening music to her ear. Enter THURIO and Musicians THURIO How now, Sir Proteus, are you crept before us? PROTEUS Ay, gentle Thurio: for you know that love Will creep in service where it cannot go. THURIO Ay, but I hope, sir, that you love not here. PROTEUS Sir, but I do; or else I would be hence. THURIO Who? Silvia? PROTEUS Ay, Silvia; for your sake. THURIO I thank you for your own. Now, gentlemen, Let's tune, and to it lustily awhile. Enter, at a distance, Host, and JULIA in boy's clothes Host Now, my young guest, methinks you're allycholly: I pray you, why is it? JULIA Marry, mine host, because I cannot be merry. Host Come, we'll have you merry: I'll bring you where you shall hear music and see the gentleman that you asked for. JULIA But shall I hear him speak? Host Ay, that you shall. JULIA That will be music. Music plays Host Hark, hark! JULIA Is he among these? Host Ay: but, peace! let's hear 'em. SONG. Who is Silvia? what is she, That all our swains commend her? Holy, fair and wise is she; The heaven such grace did lend her, That she might admired be. Is she kind as she is fair? For beauty lives with kindness. Love doth to her eyes repair, To help him of his blindness, And, being help'd, inhabits there. Then to Silvia let us sing, That Silvia is excelling; She excels each mortal thing Upon the dull earth dwelling: To her let us garlands bring. Host How now! are you sadder than you were before? How do you, man? the music likes you not. JULIA You mistake; the musician likes me not. Host Why, my pretty youth? JULIA He plays false, father. Host How? out of tune on the strings? JULIA Not so; but yet so false that he grieves my very heart-strings. Host You have a quick ear. JULIA Ay, I would I were deaf; it makes me have a slow heart. Host I perceive you delight not in music. JULIA Not a whit, when it jars so. Host Hark, what fine change is in the music! JULIA Ay, that change is the spite. Host You would have them always play but one thing? JULIA I would always have one play but one thing. But, host, doth this Sir Proteus that we talk on Often resort unto this gentlewoman? Host I tell you what Launce, his man, told me: he loved her out of all nick. JULIA Where is Launce? Host Gone to seek his dog; which tomorrow, by his master's command, he must carry for a present to his lady. JULIA Peace! stand aside: the company parts. PROTEUS Sir Thurio, fear not you: I will so plead That you shall say my cunning drift excels. THURIO Where meet we? PROTEUS At Saint Gregory's well. THURIO Farewell. Exeunt THURIO and Musicians Enter SILVIA above PROTEUS Madam, good even to your ladyship. SILVIA I thank you for your music, gentlemen. Who is that that spake? PROTEUS One, lady, if you knew his pure heart's truth, You would quickly learn to know him by his voice. SILVIA Sir Proteus, as I take it. PROTEUS Sir Proteus, gentle lady, and your servant. SILVIA What's your will? PROTEUS That I may compass yours. SILVIA You have your wish; my will is even this: That presently you hie you home to bed. Thou subtle, perjured, false, disloyal man! Think'st thou I am so shallow, so conceitless, To be seduced by thy flattery, That hast deceived so many with thy vows? Return, return, and make thy love amends. For me, by this pale queen of night I swear, I am so far from granting thy request That I despise thee for thy wrongful suit, And by and by intend to chide myself Even for this time I spend in talking to thee. PROTEUS I grant, sweet love, that I did love a lady; But she is dead. JULIA Aside 'Twere false, if I should speak it; For I am sure she is not buried. SILVIA Say that she be; yet Valentine thy friend Survives; to whom, thyself art witness, I am betroth'd: and art thou not ashamed To wrong him with thy importunacy? PROTEUS I likewise hear that Valentine is dead. SILVIA And so suppose am I; for in his grave Assure thyself my love is buried. PROTEUS Sweet lady, let me rake it from the earth. SILVIA Go to thy lady's grave and call hers thence, Or, at the least, in hers sepulchre thine. JULIA Aside He heard not that. PROTEUS Madam, if your heart be so obdurate, Vouchsafe me yet your picture for my love, The picture that is hanging in your chamber; To that I'll speak, to that I'll sigh and weep: For since the substance of your perfect self Is else devoted, I am but a shadow; And to your shadow will I make true love. JULIA Aside If 'twere a substance, you would, sure, deceive it, And make it but a shadow, as I am. SILVIA I am very loath to be your idol, sir; But since your falsehood shall become you well To worship shadows and adore false shapes, Send to me in the morning and I'll send it: And so, good rest. PROTEUS As wretches have o'ernight That wait for execution in the morn. Exeunt PROTEUS and SILVIA severally JULIA Host, will you go? Host By my halidom, I was fast asleep. JULIA Pray you, where lies Sir Proteus? Host Marry, at my house. Trust me, I think 'tis almost day. JULIA Not so; but it hath been the longest night That e'er I watch'd and the most heaviest. Exeunt SCENE III. The same. Enter EGLAMOUR EGLAMOUR This is the hour that Madam Silvia Entreated me to call and know her mind: There's some great matter she'ld employ me in. Madam, madam! Enter SILVIA above SILVIA Who calls? EGLAMOUR Your servant and your friend; One that attends your ladyship's command. SILVIA Sir Eglamour, a thousand times good morrow. EGLAMOUR As many, worthy lady, to yourself: According to your ladyship's impose, I am thus early come to know what service It is your pleasure to command me in. SILVIA O Eglamour, thou art a gentleman-- Think not I flatter, for I swear I do not-- Valiant, wise, remorseful, well accomplish'd: Thou art not ignorant what dear good will I bear unto the banish'd Valentine, Nor how my father would enforce me marry Vain Thurio, whom my very soul abhors. Thyself hast loved; and I have heard thee say No grief did ever come so near thy heart As when thy lady and thy true love died, Upon whose grave thou vow'dst pure chastity. Sir Eglamour, I would to Valentine, To Mantua, where I hear he makes abode; And, for the ways are dangerous to pass, I do desire thy worthy company, Upon whose faith and honour I repose. Urge not my father's anger, Eglamour, But think upon my grief, a lady's grief, And on the justice of my flying hence, To keep me from a most unholy match, Which heaven and fortune still rewards with plagues. I do desire thee, even from a heart As full of sorrows as the sea of sands, To bear me company and go with me: If not, to hide what I have said to thee, That I may venture to depart alone. EGLAMOUR Madam, I pity much your grievances; Which since I know they virtuously are placed, I give consent to go along with you, Recking as little what betideth me As much I wish all good befortune you. When will you go? SILVIA This evening coming. EGLAMOUR Where shall I meet you? SILVIA At Friar Patrick's cell, Where I intend holy confession. EGLAMOUR I will not fail your ladyship. Good morrow, gentle lady. SILVIA Good morrow, kind Sir Eglamour. Exeunt severally SCENE IV. The same. Enter LAUNCE, with his his Dog LAUNCE When a man's servant shall play the cur with him, look you, it goes hard: one that I brought up of a puppy; one that I saved from drowning, when three or four of his blind brothers and sisters went to it. I have taught him, even as one would say precisely, 'thus I would teach a dog.' I was sent to deliver him as a present to Mistress Silvia from my master; and I came no sooner into the dining-chamber but he steps me to her trencher and steals her capon's leg: O, 'tis a foul thing when a cur cannot keep himself in all companies! I would have, as one should say, one that takes upon him to be a dog indeed, to be, as it were, a dog at all things. If I had not had more wit than he, to take a fault upon me that he did, I think verily he had been hanged for't; sure as I live, he had suffered for't; you shall judge. He thrusts me himself into the company of three or four gentlemanlike dogs under the duke's table: he had not been there--bless the mark!--a pissing while, but all the chamber smelt him. 'Out with the dog!' says one: 'What cur is that?' says another: 'Whip him out' says the third: 'Hang him up' says the duke. I, having been acquainted with the smell before, knew it was Crab, and goes me to the fellow that whips the dogs: 'Friend,' quoth I, 'you mean to whip the dog?' 'Ay, marry, do I,' quoth he. 'You do him the more wrong,' quoth I; ''twas I did the thing you wot of.' He makes me no more ado, but whips me out of the chamber. How many masters would do this for his servant? Nay, I'll be sworn, I have sat in the stocks for puddings he hath stolen, otherwise he had been executed; I have stood on the pillory for geese he hath killed, otherwise he had suffered for't. Thou thinkest not of this now. Nay, I remember the trick you served me when I took my leave of Madam Silvia: did not I bid thee still mark me and do as I do? when didst thou see me heave up my leg and make water against a gentlewoman's farthingale? didst thou ever see me do such a trick? Enter PROTEUS and JULIA PROTEUS Sebastian is thy name? I like thee well And will employ thee in some service presently. JULIA In what you please: I'll do what I can. PROTEUS I hope thou wilt. To LAUNCE How now, you whoreson peasant! Where have you been these two days loitering? LAUNCE Marry, sir, I carried Mistress Silvia the dog you bade me. PROTEUS And what says she to my little jewel? LAUNCE Marry, she says your dog was a cur, and tells you currish thanks is good enough for such a present. PROTEUS But she received my dog? LAUNCE No, indeed, did she not: here have I brought him back again. PROTEUS What, didst thou offer her this from me? LAUNCE Ay, sir: the other squirrel was stolen from me by the hangman boys in the market-place: and then I offered her mine own, who is a dog as big as ten of yours, and therefore the gift the greater. PROTEUS Go get thee hence, and find my dog again, Or ne'er return again into my sight. Away, I say! stay'st thou to vex me here? Exit LAUNCE A slave, that still an end turns me to shame! Sebastian, I have entertained thee, Partly that I have need of such a youth That can with some discretion do my business, For 'tis no trusting to yond foolish lout, But chiefly for thy face and thy behavior, Which, if my augury deceive me not, Witness good bringing up, fortune and truth: Therefore know thou, for this I entertain thee. Go presently and take this ring with thee, Deliver it to Madam Silvia: She loved me well deliver'd it to me. JULIA It seems you loved not her, to leave her token. She is dead, belike? PROTEUS Not so; I think she lives. JULIA Alas! PROTEUS Why dost thou cry 'alas'? JULIA I cannot choose But pity her. PROTEUS Wherefore shouldst thou pity her? JULIA Because methinks that she loved you as well As you do love your lady Silvia: She dreams of him that has forgot her love; You dote on her that cares not for your love. 'Tis pity love should be so contrary; And thinking of it makes me cry 'alas!' PROTEUS Well, give her that ring and therewithal This letter. That's her chamber. Tell my lady I claim the promise for her heavenly picture. Your message done, hie home unto my chamber, Where thou shalt find me, sad and solitary. Exit JULIA How many women would do such a message? Alas, poor Proteus! thou hast entertain'd A fox to be the shepherd of thy lambs. Alas, poor fool! why do I pity him That with his very heart despiseth me? Because he loves her, he despiseth me; Because I love him I must pity him. This ring I gave him when he parted from me, To bind him to remember my good will; And now am I, unhappy messenger, To plead for that which I would not obtain, To carry that which I would have refused, To praise his faith which I would have dispraised. I am my master's true-confirmed love; But cannot be true servant to my master, Unless I prove false traitor to myself. Yet will I woo for him, but yet so coldly As, heaven it knows, I would not have him speed. Enter SILVIA, attended Gentlewoman, good day! I pray you, be my mean To bring me where to speak with Madam Silvia. SILVIA What would you with her, if that I be she? JULIA If you be she, I do entreat your patience To hear me speak the message I am sent on. SILVIA From whom? JULIA From my master, Sir Proteus, madam. SILVIA O, he sends you for a picture. JULIA Ay, madam. SILVIA Ursula, bring my picture here. Go give your master this: tell him from me, One Julia, that his changing thoughts forget, Would better fit his chamber than this shadow. JULIA Madam, please you peruse this letter.-- Pardon me, madam; I have unadvised Deliver'd you a paper that I should not: This is the letter to your ladyship. SILVIA I pray thee, let me look on that again. JULIA It may not be; good madam, pardon me. SILVIA There, hold! I will not look upon your master's lines: I know they are stuff'd with protestations And full of new-found oaths; which he will break As easily as I do tear his paper. JULIA Madam, he sends your ladyship this ring. SILVIA The more shame for him that he sends it me; For I have heard him say a thousand times His Julia gave it him at his departure. Though his false finger have profaned the ring, Mine shall not do his Julia so much wrong. JULIA She thanks you. SILVIA What say'st thou? JULIA I thank you, madam, that you tender her. Poor gentlewoman! my master wrongs her much. SILVIA Dost thou know her? JULIA Almost as well as I do know myself: To think upon her woes I do protest That I have wept a hundred several times. SILVIA Belike she thinks that Proteus hath forsook her. JULIA I think she doth; and that's her cause of sorrow. SILVIA Is she not passing fair? JULIA She hath been fairer, madam, than she is: When she did think my master loved her well, She, in my judgment, was as fair as you: But since she did neglect her looking-glass And threw her sun-expelling mask away, The air hath starved the roses in her cheeks And pinch'd the lily-tincture of her face, That now she is become as black as I. SILVIA How tall was she? JULIA About my stature; for at Pentecost, When all our pageants of delight were play'd, Our youth got me to play the woman's part, And I was trimm'd in Madam Julia's gown, Which served me as fit, by all men's judgments, As if the garment had been made for me: Therefore I know she is about my height. And at that time I made her weep agood, For I did play a lamentable part: Madam, 'twas Ariadne passioning For Theseus' perjury and unjust flight; Which I so lively acted with my tears That my poor mistress, moved therewithal, Wept bitterly; and would I might be dead If I in thought felt not her very sorrow! SILVIA She is beholding to thee, gentle youth. Alas, poor lady, desolate and left! I weep myself to think upon thy words. Here, youth, there is my purse; I give thee this For thy sweet mistress' sake, because thou lovest her. Farewell. Exit SILVIA, with attendants JULIA And she shall thank you for't, if e'er you know her. A virtuous gentlewoman, mild and beautiful I hope my master's suit will be but cold, Since she respects my mistress' love so much. Alas, how love can trifle with itself! Here is her picture: let me see; I think, If I had such a tire, this face of mine Were full as lovely as is this of hers: And yet the painter flatter'd her a little, Unless I flatter with myself too much. Her hair is auburn, mine is perfect yellow: If that be all the difference in his love, I'll get me such a colour'd periwig. Her eyes are grey as glass, and so are mine: Ay, but her forehead's low, and mine's as high. What should it be that he respects in her But I can make respective in myself, If this fond Love were not a blinded god? Come, shadow, come and take this shadow up, For 'tis thy rival. O thou senseless form, Thou shalt be worshipp'd, kiss'd, loved and adored! And, were there sense in his idolatry, My substance should be statue in thy stead. I'll use thee kindly for thy mistress' sake, That used me so; or else, by Jove I vow, I should have scratch'd out your unseeing eyes To make my master out of love with thee! Exit ACT V SCENE I. Milan. An abbey. Enter EGLAMOUR EGLAMOUR The sun begins to gild the western sky; And now it is about the very hour That Silvia, at Friar Patrick's cell, should meet me. She will not fail, for lovers break not hours, Unless it be to come before their time; So much they spur their expedition. See where she comes. Enter SILVIA Lady, a happy evening! SILVIA Amen, amen! Go on, good Eglamour, Out at the postern by the abbey-wall: I fear I am attended by some spies. EGLAMOUR Fear not: the forest is not three leagues off; If we recover that, we are sure enough. Exeunt SCENE II. The same. The DUKE's palace. Enter THURIO, PROTEUS, and JULIA THURIO Sir Proteus, what says Silvia to my suit? PROTEUS O, sir, I find her milder than she was; And yet she takes exceptions at your person. THURIO What, that my leg is too long? PROTEUS No; that it is too little. THURIO I'll wear a boot, to make it somewhat rounder. JULIA Aside But love will not be spurr'd to what it loathes. THURIO What says she to my face? PROTEUS She says it is a fair one. THURIO Nay then, the wanton lies; my face is black. PROTEUS But pearls are fair; and the old saying is, Black men are pearls in beauteous ladies' eyes. JULIA Aside 'Tis true; such pearls as put out ladies' eyes; For I had rather wink than look on them. THURIO How likes she my discourse? PROTEUS Ill, when you talk of war. THURIO But well, when I discourse of love and peace? JULIA Aside But better, indeed, when you hold your peace. THURIO What says she to my valour? PROTEUS O, sir, she makes no doubt of that. JULIA Aside She needs not, when she knows it cowardice. THURIO What says she to my birth? PROTEUS That you are well derived. JULIA Aside True; from a gentleman to a fool. THURIO Considers she my possessions? PROTEUS O, ay; and pities them. THURIO Wherefore? JULIA Aside That such an ass should owe them. PROTEUS That they are out by lease. JULIA Here comes the duke. Enter DUKE DUKE How now, Sir Proteus! how now, Thurio! Which of you saw Sir Eglamour of late? THURIO Not I. PROTEUS Nor I. DUKE Saw you my daughter? PROTEUS Neither. DUKE Why then, She's fled unto that peasant Valentine; And Eglamour is in her company. 'Tis true; for Friar Laurence met them both, As he in penance wander'd through the forest; Him he knew well, and guess'd that it was she, But, being mask'd, he was not sure of it; Besides, she did intend confession At Patrick's cell this even; and there she was not; These likelihoods confirm her flight from hence. Therefore, I pray you, stand not to discourse, But mount you presently and meet with me Upon the rising of the mountain-foot That leads towards Mantua, whither they are fled: Dispatch, sweet gentlemen, and follow me. Exit THURIO Why, this it is to be a peevish girl, That flies her fortune when it follows her. I'll after, more to be revenged on Eglamour Than for the love of reckless Silvia. Exit PROTEUS And I will follow, more for Silvia's love Than hate of Eglamour that goes with her. Exit JULIA And I will follow, more to cross that love Than hate for Silvia that is gone for love. Exit SCENE III. The frontiers of Mantua. The forest. Enter Outlaws with SILVIA First Outlaw Come, come, Be patient; we must bring you to our captain. SILVIA A thousand more mischances than this one Have learn'd me how to brook this patiently. Second Outlaw Come, bring her away. First Outlaw Where is the gentleman that was with her? Third Outlaw Being nimble-footed, he hath outrun us, But Moyses and Valerius follow him. Go thou with her to the west end of the wood; There is our captain: we'll follow him that's fled; The thicket is beset; he cannot 'scape. First Outlaw Come, I must bring you to our captain's cave: Fear not; he bears an honourable mind, And will not use a woman lawlessly. SILVIA O Valentine, this I endure for thee! Exeunt SCENE IV. Another part of the forest. Enter VALENTINE VALENTINE How use doth breed a habit in a man! This shadowy desert, unfrequented woods, I better brook than flourishing peopled towns: Here can I sit alone, unseen of any, And to the nightingale's complaining notes Tune my distresses and record my woes. O thou that dost inhabit in my breast, Leave not the mansion so long tenantless, Lest, growing ruinous, the building fall And leave no memory of what it was! Repair me with thy presence, Silvia; Thou gentle nymph, cherish thy forlorn swain! What halloing and what stir is this to-day? These are my mates, that make their wills their law, Have some unhappy passenger in chase. They love me well; yet I have much to do To keep them from uncivil outrages. Withdraw thee, Valentine: who's this comes here? Enter PROTEUS, SILVIA, and JULIA PROTEUS Madam, this service I have done for you, Though you respect not aught your servant doth, To hazard life and rescue you from him That would have forced your honour and your love; Vouchsafe me, for my meed, but one fair look; A smaller boon than this I cannot beg And less than this, I am sure, you cannot give. VALENTINE Aside How like a dream is this I see and hear! Love, lend me patience to forbear awhile. SILVIA O miserable, unhappy that I am! PROTEUS Unhappy were you, madam, ere I came; But by my coming I have made you happy. SILVIA By thy approach thou makest me most unhappy. JULIA Aside And me, when he approacheth to your presence. SILVIA Had I been seized by a hungry lion, I would have been a breakfast to the beast, Rather than have false Proteus rescue me. O, Heaven be judge how I love Valentine, Whose life's as tender to me as my soul! And full as much, for more there cannot be, I do detest false perjured Proteus. Therefore be gone; solicit me no more. PROTEUS What dangerous action, stood it next to death, Would I not undergo for one calm look! O, 'tis the curse in love, and still approved, When women cannot love where they're beloved! SILVIA When Proteus cannot love where he's beloved. Read over Julia's heart, thy first best love, For whose dear sake thou didst then rend thy faith Into a thousand oaths; and all those oaths Descended into perjury, to love me. Thou hast no faith left now, unless thou'dst two; And that's far worse than none; better have none Than plural faith which is too much by one: Thou counterfeit to thy true friend! PROTEUS In love Who respects friend? SILVIA All men but Proteus. PROTEUS Nay, if the gentle spirit of moving words Can no way change you to a milder form, I'll woo you like a soldier, at arms' end, And love you 'gainst the nature of love,--force ye. SILVIA O heaven! PROTEUS I'll force thee yield to my desire. VALENTINE Ruffian, let go that rude uncivil touch, Thou friend of an ill fashion! PROTEUS Valentine! VALENTINE Thou common friend, that's without faith or love, For such is a friend now; treacherous man! Thou hast beguiled my hopes; nought but mine eye Could have persuaded me: now I dare not say I have one friend alive; thou wouldst disprove me. Who should be trusted, when one's own right hand Is perjured to the bosom? Proteus, I am sorry I must never trust thee more, But count the world a stranger for thy sake. The private wound is deepest: O time most accurst, 'Mongst all foes that a friend should be the worst! PROTEUS My shame and guilt confounds me. Forgive me, Valentine: if hearty sorrow Be a sufficient ransom for offence, I tender 't here; I do as truly suffer As e'er I did commit. VALENTINE Then I am paid; And once again I do receive thee honest. Who by repentance is not satisfied Is nor of heaven nor earth, for these are pleased. By penitence the Eternal's wrath's appeased: And, that my love may appear plain and free, All that was mine in Silvia I give thee. JULIA O me unhappy! Swoons PROTEUS Look to the boy. VALENTINE Why, boy! why, wag! how now! what's the matter? Look up; speak. JULIA O good sir, my master charged me to deliver a ring to Madam Silvia, which, out of my neglect, was never done. PROTEUS Where is that ring, boy? JULIA Here 'tis; this is it. PROTEUS How! let me see: Why, this is the ring I gave to Julia. JULIA O, cry you mercy, sir, I have mistook: This is the ring you sent to Silvia. PROTEUS But how camest thou by this ring? At my depart I gave this unto Julia. JULIA And Julia herself did give it me; And Julia herself hath brought it hither. PROTEUS How! Julia! JULIA Behold her that gave aim to all thy oaths, And entertain'd 'em deeply in her heart. How oft hast thou with perjury cleft the root! O Proteus, let this habit make thee blush! Be thou ashamed that I have took upon me Such an immodest raiment, if shame live In a disguise of love: It is the lesser blot, modesty finds, Women to change their shapes than men their minds. PROTEUS Than men their minds! 'tis true. O heaven! were man But constant, he were perfect. That one error Fills him with faults; makes him run through all the sins: Inconstancy falls off ere it begins. What is in Silvia's face, but I may spy More fresh in Julia's with a constant eye? VALENTINE Come, come, a hand from either: Let me be blest to make this happy close; 'Twere pity two such friends should be long foes. PROTEUS Bear witness, Heaven, I have my wish for ever. JULIA And I mine. Enter Outlaws, with DUKE and THURIO Outlaws A prize, a prize, a prize! VALENTINE Forbear, forbear, I say! it is my lord the duke. Your grace is welcome to a man disgraced, Banished Valentine. DUKE Sir Valentine! THURIO Yonder is Silvia; and Silvia's mine. VALENTINE Thurio, give back, or else embrace thy death; Come not within the measure of my wrath; Do not name Silvia thine; if once again, Verona shall not hold thee. Here she stands; Take but possession of her with a touch: I dare thee but to breathe upon my love. THURIO Sir Valentine, I care not for her, I; I hold him but a fool that will endanger His body for a girl that loves him not: I claim her not, and therefore she is thine. DUKE The more degenerate and base art thou, To make such means for her as thou hast done And leave her on such slight conditions. Now, by the honour of my ancestry, I do applaud thy spirit, Valentine, And think thee worthy of an empress' love: Know then, I here forget all former griefs, Cancel all grudge, repeal thee home again, Plead a new state in thy unrivall'd merit, To which I thus subscribe: Sir Valentine, Thou art a gentleman and well derived; Take thou thy Silvia, for thou hast deserved her. VALENTINE I thank your grace; the gift hath made me happy. I now beseech you, for your daughter's sake, To grant one boom that I shall ask of you. DUKE I grant it, for thine own, whate'er it be. VALENTINE These banish'd men that I have kept withal Are men endued with worthy qualities: Forgive them what they have committed here And let them be recall'd from their exile: They are reformed, civil, full of good And fit for great employment, worthy lord. DUKE Thou hast prevail'd; I pardon them and thee: Dispose of them as thou know'st their deserts. Come, let us go: we will include all jars With triumphs, mirth and rare solemnity. VALENTINE And, as we walk along, I dare be bold With our discourse to make your grace to smile. What think you of this page, my lord? DUKE I think the boy hath grace in him; he blushes. VALENTINE I warrant you, my lord, more grace than boy. DUKE What mean you by that saying? VALENTINE Please you, I'll tell you as we pass along, That you will wonder what hath fortuned. Come, Proteus; 'tis your penance but to hear The story of your loves discovered: That done, our day of marriage shall be yours; One feast, one house, one mutual happiness. Exeunt
xmls-3.0.2/tests/misc/0000755000076500000240000000000013215604733013253 5ustar rpgstaffxmls-3.0.2/tests/misc/entity.xml0000644000076500000240000000007210122063105015272 0ustar rpgstaff""Cybernetic Fables"" xmls-3.0.2/tests/misc/example.xml0000644000076500000240000000041110122063105015406 0ustar rpgstaff Stanislaw Lem "Cybernetic Fables" xmls-3.0.2/tests/misc/minimal.xml0000644000076500000240000000000710122063105015402 0ustar rpgstaff xmls-3.0.2/tests/misc/minimal1.xml0000644000076500000240000000002410122063105015462 0ustar rpgstaff xmls-3.0.2/tests/misc/minimal2.xml0000644000076500000240000000002010122063105015457 0ustar rpgstaffdata xmls-3.0.2/tests/misc/minimal3.xml0000644000076500000240000000002410122063105015464 0ustar rpgstaff data xmls-3.0.2/tests/misc/whitespace.xml0000644000076500000240000000025310122063105016113 0ustar rpgstaff ^ ^ 0 0 + ------- xmls-3.0.2/tests/namespace/0000755000076500000240000000000013215604733014254 5ustar rpgstaffxmls-3.0.2/tests/namespace/namespace1.xml0000644000076500000240000000064310122063105017000 0ustar rpgstaff Cheaper by the Dozen 1568491379

This is a funny book!

xmls-3.0.2/tests/namespace/namespace2.xml0000644000076500000240000000117010122063105016775 0ustar rpgstaff
NameOriginDescription
Huntsman Bath, UK
BitterFuggles Wonderful hop, light alcohol, good summer beer Fragile; excessive variance pub to pub
xmls-3.0.2/tests/namespace/namespace3.xml0000644000076500000240000000005010122063105016772 0ustar rpgstaff xmls-3.0.2/tests/nxml/0000755000076500000240000000000013215604733013276 5ustar rpgstaffxmls-3.0.2/tests/nxml/genetics-article.xml0000644000076500000240000030546512525205335017255 0ustar rpgstaff2015-05-06T21:47:12Zhttp://www.ncbi.nlm.nih.gov/oai/oai.cgi
oai:pubmedcentral.nih.gov:39029072014-01-27narpmc-open
Nucleic Acids Res Nucleic Acids Res nar nar Nucleic Acids Research 0305-1048 1362-4962 Oxford University Press PMC3902907 PMC3902907 3902907 24106086 10.1093/nar/gkt903 gkt903 RNA Tyrosine phosphorylation of HuR by JAK3 triggers dissociation and degradation of HuR target mRNAs Yoon Je-Hyun Abdelmohsen Kotb * Srikantan Subramanya Guo Rong Yang Xiaoling Martindale Jennifer L. Gorospe Myriam * Laboratory of Genetics, National Institute on Aging-Intramural Research Program, NIH, Baltimore, MD 21224, USA *To whom correspondence should be addressed. Tel: +1 410 558 8589; Fax: +1 410 558 8331; Email: abdelmohsenk@mail.nih.gov Correspondence may also be addressed to Myriam Gorospe. Tel: +1 410 558 8443; Fax: +1 410 558 8331; Email: gorospem@grc.nia.nih.gov

The authors wish it to be known that, in their opinion, the first two authors should be regarded as Joint First Authors.

1 2014 6 10 2013 6 10 2013 42 2 1196 1208 24 3 2013 13 9 2013 16 9 2013 Published by Oxford University Press 2013. This work is written by US Government employees and is in the public domain in the US. 2013

In response to stress conditions, many mammalian mRNAs accumulate in stress granules (SGs) together with numerous RNA-binding proteins that control mRNA turnover and translation. However, the signaling cascades that modulate the presence of ribonucleoprotein (RNP) complexes in SGs are poorly understood. Here, we investigated the localization of human antigen R (HuR), an mRNA-stabilizing RNA-binding protein, in SGs following exposure to the stress agent arsenite. Unexpectedly, the mobilization of HuR to SGs was prevented through the activation of Janus kinase 3 (JAK3) by the vitamin K3 analog menadione. JAK3 phosphorylated HuR at tyrosine 200, in turn inhibiting HuR localization in SGs, reducing HuR interaction with targets SIRT1 and VHL mRNAs, and accelerating target mRNA decay. Our findings indicate that HuR is tyrosine-phosphorylated by JAK3, and link this modification to HuR subcytoplasmic localization and to the fate of HuR target mRNAs.

INTRODUCTION

Following transcription, RNA-binding proteins (RBPs) regulate post-transcriptional steps of gene expression, including pre-mRNA splicing, and mRNA transport, storage, stability and translation (1,2). Although some RBPs have general housekeeping functions on mRNAs [e.g. bind the mRNA 5′ cap or poly(A) tail], other specialized RBPs form ribonucleoprotein (RNP) interactions with discrete subsets of mRNAs which share specific sequence elements, and affect their post-transcriptional fate (3). The latter group includes RBPs such as human antigen R (HuR), AU-binding factor 1 (AUF1), nucleolin and T-cell intracellular antigen (TIA)-1 and TIA-1-related (TIAR) proteins, which associate with subsets of target mRNAs and modulate their stability and/or translation rates (1,2). Specialized RBPs are directly involved in changing the patterns of expressed proteins in response to stress conditions, and such stress-response functions often require RBP post-translational modification (as reviewed in 4–6).

HuR has three RNA-recognition motifs (RRMs) through which it binds to a large collection of protein-coding and noncoding RNAs. Although it can interact with pre-mRNA intron sequences and has been linked to regulated splicing (7–9), HuR is best known for stabilizing and modulating the translation of mature mRNAs with which it associates via the 3′-untranslated region (UTR), typically at U-rich sites (9,10). Through binding to subsets of mRNAs encoding proliferative, stress-response and cell survival proteins, HuR has been implicated in cellular processes, such as cell division, survival, senescence and the stress-response, and with pathologies such as cancer (11,12).

HuR function is regulated at the levels of protein abundance, localization and post-translational modification. HuR levels are reduced by specific microRNAs (e.g. miR-519 and miR-125), by ubiquitination in response to mild heat shock and by caspase-mediated cleavage in response to severe stress (reviewed in 13). HuR is predominantly localized in the nucleus, but its effects on mRNA stability and translation are linked to its transport to the cytoplasm, which requires the HuR nucleocytoplasmic shuttling domain (HNS) and transport proteins such as transportins 1 and 2, the chromosome region maintenance 1 and importin-1α (14–17). The transport of HuR across the nuclear envelope is influenced by kinases including the cell cycle-dependent kinase (Cdk)1, AMP-activated protein kinase (AMPK), protein kinase (PK)C and the mitogen-activated protein kinase p38 (18–21). The interaction of HuR with target transcripts is modulated through phosphorylation of serine and threonine residues by several kinases; phosphorylation by checkpoint kinase (Chk)2 generally reduced HuR interaction with mRNAs (22,23), whereas phosphorylation by activated p38 and PKC generally promoted HuR binding to mRNAs (4,24,25).

Besides altering the ratio of cytoplasmic-to-nuclear HuR and the interaction of HuR with target mRNAs, a number of stress agents (e.g. heat shock, irradiation with ultraviolet light and treatment with hydrogen peroxide) can also enhance the aggregation of HuR in cytoplasmic RNP foci named stress granules (SGs) (14,26–29). SGs assemble in response to cell-damaging conditions to halt the translation of housekeeping mRNAs and to selectively allow stress-response and repair proteins to be translated (30). Besides HuR, SGs also contain numerous other RBPs, such as poly(A)-binding protein (PABP), staufen, tristetraprolin, TIA-1, TIAR, RasGAP-associated endoribonuclease (G3BP), fragile X mental retardation syndrome, survival of motor neuron and cytoplasmic polyadenylation element binding proteins (30). SGs are dynamic RNP structures that assemble rapidly when the cell encounters stress and disassemble in a timely manner after the stress discontinues. SGs are believed to be the sites of mRNA ‘triage’ where decisions are made on the stability of individual mRNAs while the global cellular translation is halted.

Despite the key role of HuR in the cellular stress-response, the mechanisms that control HuR localization in SGs and their possible impact on expression of HuR target stress-response mRNAs are unknown. Here, we report that in human cervical carcinoma cells, the arsenite-triggered accumulation of HuR in SGs is accompanied by increased HuR binding to target transcripts SIRT1 and VHL mRNAs and by stabilization of these mRNAs. Unexpectedly, the accumulation of HuR in SGs was blocked by treatment with menadione, a drug that activated the tyrosine kinase Janus kinase 3 (JAK3). JAK3 phosphorylated three HuR tyrosine residues in vitro; mutagenesis to prevent HuR phosphorylation specifically at Y200 restored HuR accumulation in SGs, preserved HuR binding to SIRT1 and VHL mRNAs and rescued their stability. These studies link HuR presence in SGs with the fate of target mRNAs, and highlight a novel function of tyrosine kinase JAK3 as regulator of HuR function.

MATERIALS AND METHODSCell culture, chemicals, transfection, small interfering RNAs and plasmids

Human HeLa cells were cultured in Dulbecco’s modified Eagle’s medium (Invitrogen) supplemented with 10% (v/v) Fetal Bovine Serum (FBS) and antibiotics. All plasmids were transfected using Lipofectamine-2000 (Invitrogen) and analyzed 48 h later. JAK3 and Chk2 siRNAs were from Santa Cruz Biotechnology. For mRNA stability assays, HeLa cells were treated with actinomycin D (2.5 μg/ml) to inhibit de novo transcription. Actinomycin D, arsenite (sodium arsenite) and menadione were from Sigma; pateamine A (used at 50 nM) was a gift from I.E. Gallouzi. A site-directed mutagenesis kit (Stratagene) was used to introduce point mutations in HuR expression vectors.

Western blot analysis

Whole-cell lysates, prepared in Radioimmunoprecipitation assay (RIPA) buffer, were separated by sodium dodecyl sulphate-polyacrylamide gel electrophoresis, and transferred onto Polyvinylidene fluoride (PVDF) membranes (Invitrogen iBlot Stack). Primary antibodies recognizing HuR, PABP, TIA-1, JAK3, p(Y980)JAK3, p(T68)Chk2, Chk2, Tubulin, eIF2α and phosphorylated (p-)eIF2α were from Santa Cruz Biotechnology. Antibodies recognizing phosphotyrosine (pY) residues and Flag were from Cell Signaling and Sigma, respectively. HRP-conjugated secondary antibodies were from GE Healthcare.

Immunoprecipitation assays

For immunoprecipitation (IP) of endogenous RNP complexes from whole-cell extracts (22), cells were lysed in 20 mM Tris-HCl at pH 7.5, 100 mM KCl, 5 mM MgCl2 and 0.5% NP-40 for 10 min on ice and centrifuged at 10 000 g for 15 min at 4°C. The supernatants were incubated with protein A-Sepharose beads coated with antibodies that recognized HuR, Jak3 or Flag or with control IgG (Santa Cruz Biotechnology) for 1 h at 4°C. After the beads were washed with NT2 buffer (50 mM Tris-HCl at pH 7.5, 150 mM NaCl, 1 mM MgCl2 and 0.05% NP-40), the complexes were incubated with 20 U of RNase-free DNase I (15 min at 37°C) and further incubated with 0.1% sodium dodecyl sulphate/0.5 mg/ml proteinase K (15 min at 55°C) to remove DNA and proteins, respectively. The RNPs isolated from the IP materials were further assessed by reverse transcription (RT) using random hexamers and Maxima Reverse Transcriptase (Thermo Scientific) and real-time, quantitative (q) polymerase chain reaction (PCR) using gene-specific primers (Supplementary Table S1) as well as by western blot (WB) analysis.

RNA analysis

Trizol (Invitrogen) was used to extract total RNA, and acidic phenol (Ambion) was used to extract RNA for RIP analysis (22). RT-qPCR analysis was performed using gene-specific primers (Supplementary Table S1) and SYBR green master mix (Kapa Biosystems), in an Applied Biosystems 7300 instrument. For polyribosome distribution analysis, cells were treated with cycloheximide (100 μg/ml, 15 min), and the resulting lysates (500 μl) were separated by ultracentrifugation through 10–50% linear sucrose gradients. The relative absorbance at UV 254 nm was recorded to trace the amount of RNAs throughout the gradients.

Biotin pulldown analysis

Recombinant maltose-binding protein (MBP)-HuR was incubated with a buffer containing 20 mM Tris-HCl at pH 7.5, 100 mM KCl, 5 mM MgCl2 and 0.5% NP-40. Biotinylated SIRT1 and GAPDH 3′-untranslated regions were synthesized by PCR amplification of cDNA using forward primers that contained the T7 RNA polymerase promoter sequence (Supplementary Table S1) in the presence of biotinylated CTP and T7 RNA polymerase, as described (22,31). Proteins present in the pulldown material were studied by WB analysis.

<italic>In vitro</italic> kinase assay

To analyze the phosphorylation of HuR in vitro, MBP-HuR purified from Escherichia coli was incubated with JAK3 protein immunoprecipitated from HeLa cells or purchased from Millipore. The assay was performed in kinase reaction buffer as described previously (31).

Liquid chromatography-tandem mass spectrometry analysis

Protein samples were processed using the ‘Filter-Assisted Sample Preparation’ (FASP) method (32). Briefly, protein samples were dissolved in urea (9 M) and subjected to reduction [5 mM Tris-(2-Carboxyethyl)phosphine, hydrochloride (TCEP), Sigma] at 60°C for 45 min and to alkylation (20 mM C2H4INO, Sigma) at 25°C for 15 min. Protein samples were cleaned using a 30-kDa Amicon Filter (UFC503096, Millipore) with urea (9 M) and NH4HCO3 (30 mM). Samples were then proteolyzed with trypsin (Promega) and chymotrypsin (Roche) for 12 h at 37°C (1: 20 ratio). The digested peptides were desalted and eluted with 0.1% trifluoroacetic acid in 60% acetonitrile. Dry extracted peptides were resuspended in 7 µl 0.1% formic acid for Liquid chromatography-tandem mass spectrometry (LC–MS/MS) analysis. Tandem mass spectrometry analysis of the peptides was conducted on LTQ-Orbitrap Velos interfaced with a 2D nanoLC system nanoACQUITY UltraPerformance LC System. Precursor and fragment ions were analyzed at 30 000 and 7500 resolutions, respectively. Peptide sequences were identified from isotopically resolved masses in MS and MS/MS spectra extracted with and without deconvolution using Thermo Scientific Xtract software. The data were analyzed using Proteome Discoverer 1.3 (Thermo Scientific) software configured with Mascot and Sequest search nodes and searched against Refseq version 46, human entries with oxidation on methionine, deamidation on residues N and Q, phosphorylation of Ser/Thr/Tyr residues as different variable modifications and carbamidomethyl group on cysteine residue as fixed modification. Mass tolerances on precursor and fragment masses were set to 15 ppm and 0.03 Da, respectively. Peptide validator node was used for peptide confirmation, and a 1% false discovery rate cutoff was used to filter the data.

Immunofluorescence assay

Cells were fixed with 2% (v/v) formaldehyde, permeabilized with 0.2% (v/v) Triton X-100, blocked with 5% (w/v) bovine serum albumin and incubated with primary antibodies recognizing HuR (Santa Cruz Biotechnology), TIA-1 (Santa Cruz Biotechnology), eIF3b (Santa Cruz Biotechnology), G3BP (BD biosciences) or Flag (Sigma). Alexa 488- or Alexa 568-conjugated secondary antibodies (Invitrogen) were used to detect primary antibody-antigen complexes with different color combinations as needed. Images were acquired using Axio Observer microscope (ZEISS) with AxioVision 4.7 Zeiss image-processing software or with LSM 510 Meta (ZEISS).

RESULTSJAK3 phosphorylates HuR and prevents its accumulation in SGs

HuR is normally a nuclear protein, as seen in HeLa cells (Figure 1A, control), but it can translocate to the cytoplasm on stress. In response to specific stress conditions, such as arsenite treatment, HuR was further mobilized to cytoplasmic SGs (Figure 1A). While performing experiments to test the presence of HuR in SGs after stress, we made the serendipitous discovery that 15 μM menadione (a chemotherapeutic agent that causes oxidative damage) enhanced HuR presence in the cytoplasm, but did not trigger HuR-positive SGs. Unexpectedly, menadione also prevented SG formation following exposure to 250 μM arsenite (Figure 1A, Supplementary Figure S1A). The combined treatment with arsenite and menadione caused oxidative damage, as assessed by monitoring fluorescence after incubation with dihydrocalcein, an indicator of reactive oxygen species (Supplementary Figure S1B). Although treatment with arsenite and menadione did not elicit immediate signs of apoptotic cell death by 4 h after treatment (Supplementary Figure S1C and D), some cell loss and evidence of apoptosis were detectable by 24 h following treatment (Supplementary Figure S1C and D). The formation of SGs appeared to be generally suppressed under these conditions, as other markers used to visualize SGs [e.g. G3BP and TIA-1 (Figure 1B)] similarly failed to aggregate in SGs. However, we could not exclude the possibility that SGs might have been visualized by testing for other SG markers, that SG formation was delayed or that SGs were too small for detection. Arsenite treatment blocked translation globally (33); however, despite impairing SG formation, menadione did not rescue the translationally inhibited state, as evidenced by the fact that polysomes remained globally suppressed, eIF2α was still phosphorylated and HuR remained bound to PABP (Supplementary Figure S2). To test whether menadione prevented the recruitment of HuR to SGs that formed in an eIF2α-dependent or -independent manner, we studied the effect of 50 nM pateamine A, a drug that induces SG formation independently of eIF2α phosphorylation (34). As shown (Figure 1C), pateamine A-triggered SGs were not blocked by menadione treatment, suggesting that menadione blocked the recruitment of HuR to SGs triggered by eIF2α phosphorylation.

Menadione prevents the accumulation of HuR in arsenite-triggered SGs. (A) HeLa cells were treated with sodium arsenite (250 μM) with or without menadione (15 µM) for 45 min, and SGs (arrowheads) were assessed by microscopy. HuR was visualized by immunofluorescence (green), and nuclei were visualized by staining with 4′,6-Diamidino-2-Phenylindole, Dihydrochloride (DAPI) (blue). (B) SG markers TIA-1 and G3BP were visualized by immunofluorescence staining (Materials and Methods) in cells treated as explained in (A); nuclei were visualized with DAPI. (C) HeLa cells were treated with menadione and/or pateamine A (50 nM), whereupon SG formation was assessed by immunofluorescence.

To investigate the mechanisms underlying the dynamics of HuR assembly in SGs, we screened a library of kinase inhibitors (described in 35) for restoration of HuR-positive SGs. Among the compounds in the library, only the JAK3 inhibitor ZM 449829 was capable of reversing the effect of menadione and restoring SGs in cells treated concomitantly with arsenite and menadione (Figure 2A andB). Because inhibitors are not totally specific, we also tested whether reducing JAK3 levels [achieved by using small interfering (si)RNAs] influenced SG formation after arsenite and menadione treatments. As shown in Figure 2C, 48 h after transfecting JAK3 siRNA in HeLa cells, JAK3 abundance was substantially lower. Importantly, in these cells, menadione treatment no longer blocked arsenite-triggered HuR-containing SGs, whereas in control (Ctrl) siRNA-transfected cells, menadione continued to block the formation of arsenite-triggered SGs (Figure 2D). In contrast, another stress-activated kinase that can phosphorylate HuR, Chk2, was not found to be implicated in the effects of arsenite and/or menadione (Supplementary Figure S3). The finding that JAK3 silencing mirrored the effect of inhibiting JAK3 lends further support to the notion that activation of JAK3 by menadione prevents the assembly of HuR-containing SGs.

JAK3 inhibits HuR presence in SGs. (A) HeLa cells were pre-incubated for 1 h with the JAK3 inhibitor ZM449829 (10 μM) before treatment with arsenite and/or menadione and immunostaining as described in Figure 1A. (B) Percentage of HeLa cells with visible SGs (at least one SG per cell) after treatment as in (A); data are the means + SD from three independent experiments. (C and D) Forty-eight hours after transfection of HeLa cells with either JAK3 or Ctrl siRNAs, the levels of JAK3 (as well as the levels of loading control tubulin) were assessed by WB analysis (C); the formation of SGs was visualized after treating and staining cells as explained in Figure 1D.

The rescue of HuR-positive SGs in HeLa cells after inhibiting JAK3, a tyrosine kinase, raised the intriguing possibility that tyrosine phosphorylation might affect HuR localization in response to arsenite treatment. Even though HuR has not been previously reported to be a tyrosine-phosphorylated protein, we examined whether phosphotyrosine (pY)-HuR was detected in HeLa cells treated with arsenite, with menadione or with both compounds. As shown in Figure 3A, IP of HuR from HeLa cells followed by WB analysis of phosphotyrosine residues using an anti-pY antibody revealed positive pY-HuR signals in menadione-treated cells. To gain further evidence that JAK3 might directly phosphorylate HuR, lysates from HeLa cells that had been treated with arsenite and/or menadione were used to immunoprecipitate JAK3 and recombinant purified MBP-HuR was used as substrate in an in vitro kinase assay. This analysis revealed that MBP-HuR was preferentially phosphorylated by JAK3 prepared by IP from menadione-treated cells and further showed that menadione treatment triggered the phosphorylation of JAK3 at residue Y980 (Figure 3B). In addition, IP followed by WB analysis revealed that pY-HuR levels were strongly suppressed in HeLa cells treated with the JAK3 inhibitor ZM 449829 and in HeLa cells in which JAK3 levels were lowered by silencing (Figure 3C). Together, these results indicate that the menadione-activated JAK3 phosphorylates HuR at one or several tyrosines and that this modification is linked to the loss of HuR-positive SGs.

JAK3 phosphorylates HuR at tyrosine residues. (A) After treatment with arsenite and/or menadione, HeLa cell lysates were subjected to IP using anti-HuR antibody, and the resulting IP material was assayed by WB analysis using anti-phosphotyrosine (pY) antibody. (B) After treatment of cells as in (A), JAK3 was isolated by IP from HeLa cell lysates, and the IP material was used for an in vitro kinase assay using recombinant MBP-HuR protein (2 μg) in the presence of ATP; the reaction product was subjected to WB analysis to detect tyrosine-phosphorylated HuR as well as JAK3 phosphorylation at Y980. (C) After treatment with menadione and/or JAK3 inhibitor (left), and menadione and/or JAK3 siRNA (right), pY-HuR was detected by IP using anti-HuR antibody and WB using anti-pY antibody. (D) Recombinant purified JAK3 kinase (Millipore) was used in in vitro kinase assay using recombinant MBP-HuR protein (2 μg) in the presence of ATP; the reaction mixtures were subjected to WB analysis to detect tyrosine-phosphorylated HuR. (E) Top: LC–MS/MS analysis to map pY HuR residues phosphorylated by JAK3. MBP-HuR was incubated with or without JAK3 kinase domain (Millipore) in the presence of ATP. The resulting reaction mixtures were digested with trypsin for mass spectrometry analysis. Mass shifts after phosphorylation were shown as Y + 80. Bottom: schematic representation of pY sites on HuR; RRM, RNA-recognition motif; HNS, HuR nucleocytoplasmic shuttling domain. Data in (A–D) are representative of three independent experiments.

JAK3 phosphorylates HuR at tyrosine residues

To identify the tyrosine residues of HuR that were phosphorylated by JAK3, we performed an in vitro kinase assay using recombinant purified JAK3 kinase (Millipore) and MBP-HuR purified from E. coli (Figure 3D). Mass spectrometry analysis (Materials and Methods) of the phosphorylated HuR revealed three tyrosines phosphorylated by JAK3: two residing in the RNA-recognition motif 1 (RRM1), Y63 and Y68, and one residing within the hinge region (Y200) surrounding the HNS (Figure 3E).

To investigate the possible impact of these modifications on HuR function, we changed the tyrosines into phenylalanines by site-directed mutagenesis (Y200F, Y68F and Y63F) and expressed the respective point mutants as Flag-HuR proteins from plasmids pFlag-HuR[wild-type (WT)], pFlag-HuR(Y63F), pFlag-HuR(Y68F) and pFlag-HuR(Y200F). Transfection of each plasmid followed by menadione treatment revealed that Flag-HuR(WT) and Flag-HuR(Y63F) were still tyrosine phosphorylated, but Flag-HuR(Y68F) and Flag-HuR(Y200F) were not (Figure 4A), suggesting that menadione elicited phosphorylation of HuR at Y68 and Y200 in vivo. It was interesting to note that Y68F and Y200F each completely inhibited phosphorylation, suggesting that perhaps phosphorylation of one of these two tyrosine residues facilitates or is required for phosphorylation of the other tyrosine residue. The basal and menadione-triggered tyrosine phosphorylation of Flag-HuR(WT), Flag-HuR(Y63F), Flag-HuR(Y68F) and Flag-HuR(Y200F) are shown (Figure 4B). Immunofluorescent detection of the Flag tag in cells transfected with these expression plasmids showed that all three Flag-tagged HuR proteins localized to SGs on arsenite treatment (Figure 4C). Interestingly, however, when cells were treated with both arsenite + menadione, Flag-HuR(WT) and Flag-HuR(Y68F) did not localize in visible SGs, whereas Flag-HuR(Y200F) mutant did (Figure 4C). The SG marker TIA-1 colocalized with HuR(Y200F) in SGs of cells treated with arsenite + menadione, supporting the notion that the HuR foci seen under these conditions were bona fide SGs (Supplementary Figure S4A). Technical limitations associated with the ability to detect endogenous and ectopic proteins in this experiment precluded a more definitive analysis of SGs (kinetics of assembly/disassembly, size and number) forming in the presence of WT and Y200F mutant HuR. Thus, the extent to which menadione inhibited the recruitment of HuR to SGs or more broadly impaired SG formation could not be determined. However, our results did show that menadione induces the phosphorylation of HuR by JAK3 on tyrosine residues and that phosphorylation at HuR Y200 specifically impacts on HuR subcellular localization.

HuR phosphorylation at Y200 blocks its localization in SGs. (A) Top: schematic representation of Flag-tagged HuR WT and point mutants Y63F, Y68F and Y200F. (B) Forty-eight hours after transfecting HeLa cells with the plasmids shown in (A), cell lysates were prepared, and pY-HuR signals were detected for each Flag-HuR mutant under the conditions shown. (C) Plasmids expressing Flag-tagged HuR WT and tyrosine mutants (A) were transfect into HeLa cells; 48 h later, cells were treated with arsenite and/or menadione and distribution of Flag-HuR (WT or point mutants Y68F or Y200F) was characterized using anti-Flag antibody; DAPI staining was included to visualize the nuclei. Data in (A–C) are representative of three independent experiments.

Phosphorylation at Y200 influences HuR binding to target mRNAs

Because phosphorylation of HuR by other kinases affects HuR binding to target mRNAs, as explained above, we investigated whether phosphorylation by JAK3 influenced HuR binding to target mRNAs. For this, we focused on two well-established HuR target transcripts with abundant expression in HeLa cells, SIRT1 and VHL mRNAs (22,36), encoding the protein deacetylase sirtuin 1 (Sirt1) and the tumor suppressor protein von Hippel-Lindau, respectively. We studied the interaction of HuR with these mRNAs by RIP (ribonucleoprotein immunoprecipitation) analysis of endogenous HuR using an anti-HuR antibody; the efficiency of IP of the endogenous HuR protein was assessed (Supplementary Figure S4B). After isolation of the RNA present in HuR RNP complexes, the levels of specific mRNAs were measured by RT followed by real-time quantitative (q)PCR analysis. As shown (Figure 5A and B), endogenous HuR displayed robust binding to these mRNAs in the absence of additional treatments (‘Control’ group), but the concentration of these complexes increased strongly after arsenite treatment [and increased even further at higher doses, Supplementary Figure S5)]. Following the addition of menadione, with or without arsenite, this heightened interaction was lost and HuR binding to SIRT1 and VHL mRNAs returned to the levels seen in the ‘Control’ group.

Tyrosine phosphorylation of HuR at Y200 reduces its interactions with target mRNAs. (A, B) After treatment of HeLa cells with arsenite and/or menadione as explained in Figure 1, RIP (IP followed by RT-qPCR) analysis was used to measure the levels of enrichment of SIRT1 mRNA (A) and VHL mRNA (B) associated with HuR; the samples were normalized using GAPDH mRNA, and the data represented as enrichment of each mRNA in HuR IP were compared with IgG IP. (C, D) After transfection and treatment, RIP analysis was used to measure the interaction between Flag-HuR (WT, Y68F, Y200F) and SIRT1 mRNA (C) and VHL mRNA (D); GAPDH mRNA was measured for normalization, and data are represented as enrichment of the mRNAs in Flag IP samples relative to the levels in IgG IP samples. The graphs represent the means and SD from three independent experiments.

To examine whether HuR phosphorylation at Y200 was involved in these interactions, we transfected plasmids pFlag-HuR(WT), pFlag-HuR(Y68F) and pFlag-HuR(Y200F) and tested the binding of the tagged HuR with SIRT1 mRNA (left) and VHL mRNA (right) again by RIP analysis, but by using anti-Flag antibody. The efficiency of IP of the Flag-tagged proteins was also monitored (Supplementary Figure S4B). Interestingly, although proteins Flag-HuR(WT) and Flag-HuR(Y68F) showed the same pattern of binding as the endogenous HuR, Flag-HuR(Y200F) binding to the mRNAs was no longer repressed after menadione treatment (Figure 5C andD). These results suggest that HuR phosphorylation at Y200 not only prevented HuR localization in SGs, but it also reduced binding of HuR with target SIRT1 and VHL mRNAs.

HuR tyrosine phosphorylation influences target mRNA turnover

Because HuR is known to stabilize SIRT1 and VHL mRNAs (22,36), we examined the effect of HuR tyrosine phosphorylation on the stability of these target mRNAs. We measured their half-lives by quantifying the rate of decay after transcription was inhibited through the addition of actinomycin D (‘Materials and Methods’ section). Arsenite treatment, which enhanced HuR binding to these mRNAs, also increased their half-lives (by about twofold; Figure 6A). Menadione alone did not change the stability of target mRNAs, but cells in the menadione + arsenite treatment group showed lower stability for both mRNAs relative to the arsenite alone group (Figure 6A). By contrast, the stability of a control stable transcript, GAPDH mRNA, encoding a housekeeping protein, was not influenced by the above-mentioned treatments, demonstrating that not all mRNAs decreased rapidly in the presence of actinomycin D, and only select labile mRNAs displayed reduced stability (Figure 6A, bottom). The levels of a control short-lived mRNA (MYC mRNA, encoding the proto-oncogene c-Myc) showed reduced half-life in the absence of arsenite (Figure 6A, bottom). These results support the view that HuR binding increases the half-lives of SIRT1 and VHL mRNAs.

Arsenite and menadione affect the levels and stability of HuR target mRNAs. (A) After treatment of arsenite and/or menadione, the half-lives (t1/2) of SIRT1 and VHL mRNAs (top), as well as the half-lives of a control stable mRNA (GAPDH mRNAs) and a control labile mRNA (MYC mRNA) (bottom) were quantified by measuring the time required to achieve a 50% reduction in transcript levels after adding actinomycin D at time 0 h. (B) Forty-eight hours after transfecting HeLa cells with plasmids to express Flag-HuR(WT) or Flag-HuR(Y200F), the steady-state levels of SIRT1 and VHL mRNAs were measured by RT-qPCR and normalized to the levels of GAPDH mRNA. The graphs represent the means and SD from three independent experiments.

Given the documented levels of HuR association with SIRT1 and VHL mRNAs (Figure 5) and the SIRT1 and VHL mRNA half-lives (Figure 6A), we investigated the influence of non-phosphorylatable HuR Y200F mutant on the abundance of these mRNAs. When Flag-HuR(WT) was expressed in HeLa cells, the levels of SIRT1 and VHL mRNAs rose after treatment with arsenite, but this increase was lost if cells were co-treated with menadione (Figure 6B). In contrast, when Flag-HuR(Y200F) was expressed, the arsenite-elicited increase in SIRT1 mRNA and VHL mRNA levels was refractory to menadione treatment, and the mRNAs remained significantly elevated (Figure 6B). In sum, these results indicate that HuR tyrosine phosphorylation at Y200, which excludes HuR from SGs, also promotes the dissociation of HuR from target transcripts (SIRT1 mRNA and VHL mRNA), or perhaps mobilizes HuR-SIRT1 mRNA and HuR-VHL mRNA complexes away from SGs, accelerating their degradation (Figure 7).

Schematic representation of the proposed influence of JAK3 on HuR localization and RNA-binding activity. See text for details.

DISCUSSIONTyrosine-phosphorylation of HuR by JAK3

We have reported that tyrosine phosphorylation of HuR reduces its interaction with target mRNAs, leading to lower mRNA stability. The phosphorylation at a tyrosine was unexpected, as earlier work had only identified HuR as the substrate of serine and threonine phosphorylation by PKC, Chk2, p38 and Cdk1 [reviewed in (18)]. In contrast to the earlier phosphorylation events, HuR tyrosine phosphorylation is found to influence mRNA fate linked to the absence of HuR in SGs. JAK3, identified here as a kinase responsible for the tyrosine phosphorylation of HuR, is best known in immune cells, where it is activated following exposure to cytokines (37). However, JAK3 is also expressed in HeLa cells and its inhibition by ZM 449829 lowers pY-HuR levels. As identified by mass spec analysis, JAK3 phosphorylates three HuR residues (Y63, Y68, Y200), but it remains possible that other tyrosine kinases besides JAK3 can also phosphorylate HuR at tyrosines, although no such kinases have been identified to date. Because the ubiquitous HuR is abundant in immune cells, it will be interesting to test whether tyrosine phosphorylation of HuR at Y200 influences the response of immune cells to cytokines.

Treatment with arsenite or menadione for 45 min caused oxidative stress, and this effect was enhanced by joint treatment with both chemicals (Supplementary Figure S1B). Nonetheless, by 4 h after the drugs were removed from the culture medium, assessments of cell numbers and annexin V-positive cells revealed little or no toxicity (Supplementary Figure S1A, C and D). By 24 h after removing the drugs, cells treated with arsenite did not exhibit much toxicity, as measured by modest cell loss and the absence of annexin V-positive cells (Supplementary Figure S1C and D); however, simultaneous addition of menadione to arsenite-treated cells did prove toxic, as evidenced by the enhanced cell loss and the high percentage of annexin V-positive cells (Supplementary Figure S1C and D). These results indicate that SGs are a component of the stress-response program triggered by arsenite, which ultimately the cells survived. The concomitant treatment with menadione modified this stress-response program (in part by antagonizing the formation of HuR-positive SGs) and potentiated the toxicity of arsenite. It is plausible that the chemotherapeutic actions of menadione (38) are linked to the cytotoxicity caused by menadione, as it interferes with the cellular response to stress conditions.

HNS phosphorylation affects HuR localization and binding to mRNAs

It was somewhat surprising to discover that HuR binding to SIRT1 and VHL mRNAs was influenced by phosphorylation at Y200 (Figure 5), as this residue lies within the shuttling domain of HuR (the HNS) and not within one of the three RRMs. For example, previous reports had shown that phosphorylation at RRMs (S88 in RRM1, T118 in RRM2, S100 between RRM1 and RRM2 and S318 in RRM3) affected HuR binding to numerous mRNAs (18), while phosphorylation in the HNS region (S202, S221, S242), generally altered HuR the relative abundance of HuR in the nucleus compared with the cytoplasm (19–21). The finding that phosphorylation near the shuttling domain affects HuR binding suggests that pY200 could change the conformation of the RRMs in ways that lower their binding affinity for RNA. Alternatively, Y200 phosphorylation could mobilize HuR to areas of the cell that have reduced concentration of HuR target transcripts, and thus binding is reduced because mRNAs are unavailable. Distinguishing between these possibilities awaits further study.

The finding that the non-phosphorylatable HuR(Y200F) is found in SGs after arsenite + menadione, whereas the phosphorylatable counterpart, HuR(WT), is not, suggests that phosphorylation at Y200 actively excludes HuR from SGs. Although the molecular mediators of HuR exclusion from SGs are not identified in our experiments, we have evidence that menadione may block the assembly of other SG components, including TIA-1, G3BP and eIF3b (Figure 1B; Supplementary Figure S6A; data not shown). In fact, it is possible that JAK3 may block the assembly of multiple SG components, perhaps by phosphorylating them in a coordinated manner. In this regard, JAK3 was capable of phosphorylating TIA-1 in vitro (Supplementary Figure S6B). Therefore, it remains formally possible that in cells that form SGs, HuR is mobilized to SGs because the mRNAs that HuR associates with are actively recruited to, or ‘pulled to’, SGs. It is unknown at present whether JAK3 impairs the binding of HuR to mRNAs and for this reason, HuR is not mobilized to SGs, or instead JAK3 inhibits the mobilization of HuR to SGs and this in turn affects HuR binding to mRNAs locally enriched in SGs. Both possibilities agree with the notion that SGs are sites of mRNA reassortment and ‘triage’ (30), where mRNA-binding factors form different RNPs to accomplish molecular decisions on mRNA turnover and translational status.

HuR binding to mRNAs increased by stress, linked to stabilization

The discovery that treatment with arsenite, a strong oxidant, increased HuR binding to SIRT1 and VHL mRNAs was also against our expectation (Figure 5A and B; Supplementary Figure S5), as other stress agents (e.g. ionizing radiation and the oxidant hydrogen peroxide) instead triggered the dissociation of HuR from bound mRNAs (22). As dissociation of mRNAs was linked to the phosphorylation of HuR by Chk2, it is possible that arsenite inhibits Chk2 activity, while menadione reverses this inhibition in HeLa cells. Of course, arsenite and/or menadione could also affect the phosphorylation of HuR by other kinases (p38, PKC), which influence HuR–mRNA interactions. Studies are underway to investigate these possibilities, particularly given earlier reports documenting an increase in HuR binding to some mRNAs in response to certain stresses [e.g. HIF1A mRNA after hypoxia, MKP1 mRNA after hydrogen peroxide treatment (39,40)]. In sum, our findings add to a growing body of evidence that underscores the complex regulation of HuR by phosphorylation, and the impact of this modification on HuR localization, HuR binding to mRNAs and the fate of HuR target transcripts.

SUPPLEMENTARY DATA

Supplementary Data are available at NAR Online.

FUNDING

Funding for open access charge: National Institute on Aging-Intramural Research Program, National Institutes of Health.

Conflict of interest statement. None declared.

Supplementary Material Supplementary Data ACKNOWLEDGEMENTS

The authors thank P. Anderson (Brigham and Women's Hospital) for providing reagents and advice, and C.Y. Sasaki (NIA, NIH) for assistance with experiments. This work was entirely supported by the NIA-IRP, NIH.

REFERENCES Wilkie GS Dickson KS Gray NK Regulation of mRNA translation by 5′- and 3′-UTR-binding factors Trends Biochemi. Sci. 2003 28 182 188 Wilusz CJ Wilusz J Bringing the role of mRNA decay in the control of gene expression into focus Trends Genet. 2004 20 491 497 15363903 Moore MJ From birth to death: the complex lives of eukaryotic mRNAs Sci. Signal. 2005 309 1514 Abdelmohsen K Kuwano Y Kim HH Gorospe M Posttranscriptional gene regulation by RNA-binding proteins during oxidative stress: implications for cellular senescence Biol. Chem. 2008 389 243 255 18177264 Lee EK Post-translational modifications of RNA-binding proteins and their roles in RNA granules Curr. Protein Pept. Sci. 2012 13 331 336 22708487 Srikantan S Gorospe M Bradshaw RA Dennis EA Regulation of mRNA turnover by cellular stress Handbook of Cell Signaling 2008 Chapter 270 Izquierdo JM Hu antigen R (HuR) functions as an alternative pre-mRNA splicing regulator of Fas apoptosis, promoting receptor on exon definition J. Biol. Chem. 2008 283 19077 19084 18463097 Wang H Molfenter J Zhu H Lou H Promotion of exon 6 inclusion in HuD pre-mRNA by Hu protein family members Nucleic Acids Res. 2010 38 3760 3770 20159993 Mukherjee N Corcoran DL Nusbaum JD Reid DW Georgiev S Hafner M Ascano M Jr Tuschl T Ohler U Keene JD Integrative regulatory mapping indicates that the RNA-binding protein HuR couples pre-mRNA processing and mRNA stability Mol. Cell 2011 43 327 339 21723170 López de Silanes I Zhan M Lal A Yang X Gorospe M Identification of a target RNA motif for RNA-binding protein HuR Proc. Natl Acad. Sci. USA 2004 101 2987 2992 14981256 Brennan CM Steitz JA HuR and mRNA stability Cell. Mol. Life Sci. 2001 58 266 277 11289308 Abdelmohsen K Gorospe M Posttranscriptional regulation of cancer traits by HuR Wiley Interdiscip. Rev. RNA 2010 1 214 229 21935886 Srikantan S Gorospe M HuR function in disease Front. Biosci. 2012 17 189 205 Gallouzi IE Steitz JA Delineation of mRNA export pathways by the use of cell-permeable peptides Science 2001 294 1895 1901 11729309 Fan XC Steitz JA HNS, a nuclearcytoplasmic shuttling sequence in HuR Proc. Natl Acad. Sci. USA 1998 95 15293 15298 9860962 Güttinger S Mühlhäusser P Koller-Eichhorn R Brennecke J Kutay U Transportin2 functions as importin and mediates nuclear import of HuR Proc. Natl Acad. Sci. USA 2004 101 2918 2923 14981248 Rebane A Aab A Steitz JA Transportins 1 and 2 are redundant nuclear import factors for hnRNP A1 and HuR RNA 2004 10 590 599 15037768 Eberhardt W Doller A Pfeilschifter J Regulation of the mRNA-binding protein HuR by posttranslational modification: spotlight on phosphorylation Curr. Protein Pept. Sci. 2012 13 380 390 22708484 Kim HH Abdelmohsen K Lal A Pullmann R Jr Yang X Galban S Srikantan S Martindale JL Blethrow J Shokat KM Nuclear HuR accumulation through phosphorylation by Cdk1 Genes Dev. 2008 22 1804 1815 18593881 Kim HH Yang X Kuwano Y Gorospe M Modification at HuR(S242) alters HuR localization and proliferative influence Cell Cycle 2008 7 3371 3377 18948743 Kim HH Gorospe M Phosphorylated HuR shuttles in cycles Cell Cycle 2008 7 3124 3126 18927508 Abdelmohsen K Pullmann R Jr Lal A Kim HH Galban S Yang X Blethrow JD Walker M Shubert J Gillespie DA Phosphorylation of HuR by Chk2 regulates SIRT1 expression Mol. Cell 2007 25 543 557 17317627 Masuda K Abdelmohsen K Kim MM Srikantan S Lee EK Tominaga K Selimyan R Martindale JL Yang X Lehrmann E Global dissociation of HuR-mRNA complexes promotes cell survival after ionizing radiation EMBO J. 2011 30 1040 1053 21317874 Piecyk M Wax S Beck AR Kedersha N Gupta M Maritim B Chen S Gueydan C Kruys V Streuli M TIA-1 is a translational silencer that selectively regulates the expression of TNF-α EMBO J. 2000 19 4154 4163 10921895 Hinman MN Lou H Diverse molecular functions of Hu proteins Cell Mol. Life Sci. 2008 65 3168 3181 18581050 Lian XJ Gallouzi IE Oxidative stress increases the number of stress granules in senescent cells and triggers a rapid decrease in p21waf1/cip1 translation J. Biol. Chem. 2009 284 8877 8887 19176530 Lu L Wang S Zheng L Li X Suswam EA Zhang X Wheeler CG Nabors LB Filippova N King PH Amyotrophic lateral sclerosis-linked mutant SOD1 sequesters Hu antigen R (HuR) and TIA-1-related protein (TIAR): implications for impaired post-transcriptional regulation of vascular endothelial growth factor J. Biol. Chem. 2009 284 33989 33998 19805546 Bhattacharyya SN Habermacher R Martine U Closs EI Filipowicz W Relief of microRNA-mediated translational repression in human cells subjected to stress Cell 2006 125 1111 1124 16777601 Stoecklin G Stubbs T Kedersha N Wax S Rigby WF Blackwell TK Anderson P MK2-induced tristetraprolin:14–3-3 complexes prevent stress granule association and ARE-mRNA decay EMBO J. 2004 23 1313 1324 15014438 Anderson P Kedersha N RNA granules: post-transcriptional and epigenetic modulators of gene expression Nat. Rev. Mol. Cell Biol. 2009 10 430 436 19461665 Yoon JH Choi EJ Parker R Dcp2 phosphorylation by Ste20 modulates stress granule assembly and mRNA decay in Saccharomyces cerevisiae J. Cell Biol. 2010 189 813 827 20513766 Wiśniewski JR Zougman A Nagaraj N Mann M Universal sample preparation method for proteome analysis Nat. Methods. 2009 6 359 362 19377485 Kedersha N Chen S Gilks N Li W Miller IJ Stahl J Anderson P Evidence that ternary complex (eIF2-GTP-tRNA(i)(Met))-deficient preinitiation complexes are core constituents of mammalian stress granules Mol. Biol. Cell 2002 13 195 210 11809833 Dang Y Kedersha N Low WK Romo D Gorospe M Kaufman R Anderson P Liu JO Eukaryotic initiation factor 2alpha-independent pathway of stress granule induction by the natural product pateamine A J. Biol. Chem. 2006 281 32870 32878 16951406 Abdelmohsen K Srikantan S Tominaga K Kang MJ Yaniv Y Martindale JL Yang X Park SS Becker KG Subramanian M Growth inhibition by miR-519 via multiple p21-inducing pathways Mol. Cell. Biol. 2012 32 2530 2548 22547681 Abdelmohsen K Srikantan S Yang X Lal A Kim HH Kuwano Y Galban S Becker KG Kamara D de Cabo R Ubiquitin-mediated proteolysis of HuR by heat shock EMBO J. 2009 28 1271 1282 19322201 O'Shea JJ Holland SM Staudt LM JAKs and STATs in immunity, immunodeficiency, and cancer N. Engl. J. Med. 2013 368 161 170 23301733 Nutter LM Cheng AL Hung HL Hsieh RK Ngo EO Liu TW Menadione: spectrum of anticancer activity and effects on nucleotide metabolism in human neoplastic cell lines Biochem. Pharmacol. 1991 41 1283 1292 2018560 Galbán S Kuwano Y Pullmann R Jr Martindale JL Kim HH Lal A Abdelmohsen K Yang X Dang Y Liu JO RNA-binding proteins HuR and PTB promote the translation of hypoxia-inducible factor 1α Mol. Cell. Biol. 2008 28 93 107 17967866 Kuwano Y Kuwano Y Pullmann R Jr Martindale JL Kim HH Lal A Abdelmohsen K Yang X Dang Y Liu JO MKP-1 mRNA stabilization and translational control by RNA-binding proteins HuR and NF90 Mol. Cell. Biol. 2008 28 4562 4575 18490444
xmls-3.0.2/tests/nxml/no-processing-instructions.xml0000644000076500000240000000357112525203352021351 0ustar rpgstaff 2015-05-06T21:47:12Z http://www.ncbi.nlm.nih.gov/oai/oai.cgi
oai:pubmedcentral.nih.gov:3902907 2014-01-27 nar pmc-open
Nucleic Acids Res Nucleic Acids Res nar nar Nucleic Acids Research 0305-1048 1362-4962 Oxford University Press
xmls-3.0.2/tests/nxml/processing-instructions.xml0000644000076500000240000000317012525203352020732 0ustar rpgstaff2015-05-06T21:47:12Zhttp://www.ncbi.nlm.nih.gov/oai/oai.cgi
oai:pubmedcentral.nih.gov:39029072014-01-27narpmc-open
Nucleic Acids Res Nucleic Acids Res nar nar Nucleic Acids Research 0305-1048 1362-4962 Oxford University Press
xmls-3.0.2/tests/rdf/0000755000076500000240000000000013215604733013073 5ustar rpgstaffxmls-3.0.2/tests/rdf/mimeTypes.rdf0000644000076500000240000000507710122063105015537 0ustar rpgstaff xmls-3.0.2/tests/rss.xml0000644000076500000240000024003011531273770013652 0ustar rpgstaff HD-Trailers.net Blog http://blog.hd-trailers.net Easily download HD (High Definition) movie trailers Tue, 22 Feb 2011 06:44:55 +0000 en hourly 1 http://wordpress.org/?v=3.0.5 Diary of a Wimpy Kid: Rodrick Rules (Trailer 2) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/d6FdAYJymL0/ http://blog.hd-trailers.net/2011/02/21/diary-of-a-wimpy-kid-rodrick-rules-trailer-2/#comments Tue, 22 Feb 2011 06:44:55 +0000 Krunk http://blog.hd-trailers.net/?p=18770 hd-trailers.netLink to Catalog

Diary of a Wimpy Kid: Rodrick Rules Poster In this sequel to 2010's surprise hit, Greg Heffley, the kid who made "wimpy" cool is back in an all-new family comedy based on the best-selling follow-up novel by Jeff Kinney. (Kinney's Wimpy Kid" series has thus far sold 42 million books.) As he begins seventh grade, Greg and his older brother - and chief tormentor - Rodrick must deal with their parents' misguided attempts to have them bond. (Source)

Apple Direct Download Unavailable Download: 480p, 720p, 1080p

]]>
http://blog.hd-trailers.net/2011/02/21/diary-of-a-wimpy-kid-rodrick-rules-trailer-2/feed/ 0 http://blog.hd-trailers.net/2011/02/21/diary-of-a-wimpy-kid-rodrick-rules-trailer-2/
Diary of a Wimpy Kid: Rodrick Rules (Trailer 1) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/YBhygxjKEoY/ http://blog.hd-trailers.net/2011/02/21/diary-of-a-wimpy-kid-rodrick-rules-trailer-1/#comments Tue, 22 Feb 2011 06:44:46 +0000 Krunk http://blog.hd-trailers.net/?p=18771 hd-trailers.netLink to Catalog

Diary of a Wimpy Kid: Rodrick Rules Poster In this sequel to 2010's surprise hit, Greg Heffley, the kid who made "wimpy" cool is back in an all-new family comedy based on the best-selling follow-up novel by Jeff Kinney. (Kinney's Wimpy Kid" series has thus far sold 42 million books.) As he begins seventh grade, Greg and his older brother - and chief tormentor - Rodrick must deal with their parents' misguided attempts to have them bond. (Source)

Apple Direct Download Unavailable Download: 480p, 720p, 1080p

]]>
http://blog.hd-trailers.net/2011/02/21/diary-of-a-wimpy-kid-rodrick-rules-trailer-1/feed/ 0 http://blog.hd-trailers.net/2011/02/21/diary-of-a-wimpy-kid-rodrick-rules-trailer-1/
Desert Flower (Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/7cAdWg2Z4jc/ http://blog.hd-trailers.net/2011/02/21/desert-flower-trailer/#comments Tue, 22 Feb 2011 06:43:05 +0000 Krunk http://blog.hd-trailers.net/?p=18768 hd-trailers.netLink to Catalog

Desert Flower Poster Desert Flower tells the inspiring true story of Waris Dirie, who was catapulted to fame and fortune as a high fashion model after running away from an arranged marriage at age 13. But after years of living a glamorous life, the past comes back to haunt her, and she must face the childhood trauma that forever changed her destiny. (Source)

Apple Direct Download Unavailable Download: 480p, 720p, 1080p

]]>
http://blog.hd-trailers.net/2011/02/21/desert-flower-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/21/desert-flower-trailer/
Dream Home (Unrated Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/pgxkC4IsbTM/ http://blog.hd-trailers.net/2011/02/20/dream-home-unrated-trailer/#comments Mon, 21 Feb 2011 03:47:31 +0000 Krunk http://blog.hd-trailers.net/?p=18756 hd-trailers.netLink to Catalog

Dream Home Poster When she was a child, Cheng Lai-Sheung (Josie Ho) could see Hong Kong's famed Victoria Harbour from her apartment. She vows to one day save up enough money for her family to move into 'No.1 Victoria Bay' with a magnificent view. In order to achieve her dream, Cheng has to work hard at two full-time jobs. She even goes as far as stealing customer data to sell to other companies. However, no matter how much she toils, she cannot earn enough to keep up with the ever-increasing values of Hong Kong's real estate. Since property prices keep leaping higher, her dream home now seems forever out of reach...until suddenly, it dawns on her: in order to get what she wants, she must take matters into her own hands...even if it means getting her hands seriously bloody. (Source)

Download: 480p, 720p, 1080p

]]>
http://blog.hd-trailers.net/2011/02/20/dream-home-unrated-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/20/dream-home-unrated-trailer/
Twitter Weekly Updates for 2011-02-20 http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/1faLn4r0Ob8/ http://blog.hd-trailers.net/2011/02/20/twitter-weekly-updates-for-2011-02-20/#comments Sun, 20 Feb 2011 14:59:00 +0000 Krunk http://blog.hd-trailers.net/2011/02/20/twitter-weekly-updates-for-2011-02-20/
  • Sweet deal! Inception (2-disc edition) for $14 on Blu-ray @amazon: http://amzn.to/ecgKGP #
  • Why is it when things are slowed down, they are always so awesome? http://fb.me/B5JPQqff #
  • @watchinpreacher I think it'd be funnier if you ended the first sentence with sucks or blow ;p in reply to watchinpreacher #
  • @iTunesTrailers I think you spelled Big Mommas incorrectly ;) #
  • SNL brings to you this hilarious parody trailer of Guy Ritchie - British Movie http://fb.me/PDp0KyiL #
  • I apologize for the lack of updates these past few days. It's been a very busy week at work. #
  • The HD trailer for Dead Island (game) is amazing, beautiful, and sad all at the same time. Masterpiece! http://fb.me/ElQ1qsKu #
  • The Rainbow Tribe - HD trailer via Movie-List.com http://fb.me/HjC7afP6 #
  • Purple Sea - HD trailer via Movie-List.com http://fb.me/SUntaAMl #
  • Oooh! The new HD trailer for Thor is out! http://fb.me/T11YKgl9 #
  • Some trailers had no video when played in IE. I believe I've fixed the issue, but you might have to delete your temporary internet files. #
  • Yet another romantic comedy - Something Borrowed - HD trailer: http://fb.me/RE5GStKH #
  • New HD trailer for the upcoming horror film: Insidious via Movie-List.com http://fb.me/FInCt3KK #
  • @wandering_fairy Haha. Thanks! (^_^x) in reply to wandering_fairy #
  • @yetihands You should check out http://t.co/gfKJz2k if you want to download the new HD trailer for Thor in reply to yetihands #
  • @andrewcantalk @dom_transformer trailer fiends, you might want to give http://www.hd-trailers.net/ a spin. :D in reply to andrewcantalk #
  • They've released an online-only HD fan trailer for Diary of a Wimpy Kid: Rodrick Rules via Movie-List.com http://fb.me/Bls5QTaO #
  • @mifff Looks like it's already posted: http://t.co/iKWlo4k in reply to mifff #
  • New HD trailer - Girl Walks into a Bar (Carla Gugino, Zachary Quinto, Josh Hartnett, Danny DeVito, Alexis Bledel) http://fb.me/w9uoIxFO #
  • This was pretty neat! X-Men First Class Vs. Star Wars Series Mashup http://fb.me/TAg6NI0w #
  • @hdtrailers The title of this movie makes me think it's the beginning of a joke: Girl Walks into a Bar in reply to hdtrailers #
  • The Black Keys decided to make a parody HD trailer for their new song: Howlin' For You http://fb.me/PISmtc6H #
  • After seeing the new trailers/clips for The King's Speech, I knew I had to get the score! http://fb.me/HrDVBl8t #
  • The new Korean horror film I Saw The Devil looks like it'll be a visceral thrill ride! HD trailer: http://fb.me/LraMTwce #
  • @hdtrailers If you enjoyed this, you'll probably enjoy the red band HD trailer for I Saw The Devil even more! http://t.co/nZKTWIo in reply to hdtrailers #
  • Upcoming French animation The Prodigies looks interesting. There's also a contest: http://bit.ly/i7uGs2 HD trailer: http://fb.me/P8AkPqNU #
  • Apollo 18 explains why we haven't been back to the moon since... HD trailer: http://fb.me/Ab0Osoav #
  • I posted 4 photos on Facebook in the album "Immortals" http://fb.me/TN9Pe9FV #
  • I posted 12 photos on Facebook in the album "Tangled" http://fb.me/QJfx7gY8 #
  • ]]>
    http://blog.hd-trailers.net/2011/02/20/twitter-weekly-updates-for-2011-02-20/feed/ 0 http://blog.hd-trailers.net/2011/02/20/twitter-weekly-updates-for-2011-02-20/
    Submarine (Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/FO_UuZbVctw/ http://blog.hd-trailers.net/2011/02/19/submarine-trailer/#comments Sun, 20 Feb 2011 00:22:05 +0000 Krunk http://blog.hd-trailers.net/?p=18753 hd-trailers.netLink to Catalog

    Submarine Poster A coming-of-age comedy set in Swansea following 15-year-old Oliver Tate through the impending break-up of his parents’ marriage and his first relationship. (Source)

    Download: 480p, 720p

    ]]>
    http://blog.hd-trailers.net/2011/02/19/submarine-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/19/submarine-trailer/
    I Saw the Devil (Red Band Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/z3ZKft5OAHk/ http://blog.hd-trailers.net/2011/02/19/i-saw-the-devil-red-band-trailer/#comments Sun, 20 Feb 2011 00:05:49 +0000 Krunk http://blog.hd-trailers.net/?p=18750 hd-trailers.netLink to Catalog

    I Saw the Devil Poster Lee Byung-hyun ("The Good, The Bad and The Weird") stars as Dae-hoon, a special agent whose pregnant wife becomes the latest victim of a disturbed and brutal serial killer, captivatingly played by Oldboy's Choi Min-sik. Vowing revenge, Dae-hoon blurs the lines between hunter and hunted and good and evil, eventually becoming a monster himself in his twisted pursuit of revenge. From Korean genre master Kim Jee-woon ("The Good, The Bad and The Weird" and "A Tale of Two Sisters"),"I Saw the Devil" is shockingly violent and stunningly accomplished, transcending the police procedural and pushing the boundaries of extreme Asian cinema in surprising and thrilling new ways. (Source)

    Download: 480p, 720p

    ]]>
    http://blog.hd-trailers.net/2011/02/19/i-saw-the-devil-red-band-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/19/i-saw-the-devil-red-band-trailer/
    Jumping the Broom (Theatrical Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/rje7uh1CUr4/ http://blog.hd-trailers.net/2011/02/19/jumping-the-broom-theatrical-trailer-2/#comments Sat, 19 Feb 2011 21:35:42 +0000 Krunk http://blog.hd-trailers.net/?p=18748 hd-trailers.netLink to Catalog

    Jumping the Broom (2011) Poster A collision of worlds when two African-American families from divergent socioeconomic backgrounds get together one weekend in Martha's Vineyard for a wedding. (Source)

    Download: 480p, 720p, 1080p
    MP4 Encode
    : 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/19/jumping-the-broom-theatrical-trailer-2/feed/ 0 http://blog.hd-trailers.net/2011/02/19/jumping-the-broom-theatrical-trailer-2/
    Mars Needs Moms (Theatrical Trailer 2) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/tD-aGOo8P34/ http://blog.hd-trailers.net/2011/02/19/mars-needs-moms-theatrical-trailer-2/#comments Sat, 19 Feb 2011 21:34:53 +0000 Krunk http://blog.hd-trailers.net/?p=18746 hd-trailers.netLink to Catalog

    Mars Needs Moms (2011) Poster Take out the trash, eat your broccoli - who needs moms, anyway? Nine-year-old Milo finds out just how much he needs his mom when she's nabbed by Martians who plan to steal her mom-ness for their own young. Milo embarks on a quest to save his mom - a wild adventure that involves stowing away on a spaceship, navigating an elaborate, multi-level planet and taking on the alien nation and their leader. With the help of a tech-savvy, underground earthman named Gribble and a rebel Martian girl called Ki, Milo just might find his way back to his mom - in more ways than one. (Source)

    Download: 480p, 720p, 1080p
    MP4 Encode
    : 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/19/mars-needs-moms-theatrical-trailer-2/feed/ 0 http://blog.hd-trailers.net/2011/02/19/mars-needs-moms-theatrical-trailer-2/
    Apollo 18 (Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/ygOK6lj3BPY/ http://blog.hd-trailers.net/2011/02/19/apollo-18-trailer/#comments Sat, 19 Feb 2011 21:33:59 +0000 Krunk http://blog.hd-trailers.net/?p=18744 hd-trailers.netLink to Catalog

    Apollo 18 Poster Officially, Apollo 17, launched December 17th, 1972, was the last manned mission to the moon. But a year later, in December of 1973, two American astronauts were sent on a secret mission to the moon funded by the US Department of Defense. What you are about to see is the actual footage which the astronauts captured on that mission. While NASA denies its authenticity, others say it's the real reason we've never gone back to the moon. (Source)

    Apple Direct Download Unavailable Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/19/apollo-18-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/19/apollo-18-trailer/
    I Saw The Devil (Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/_gFehF_wwgE/ http://blog.hd-trailers.net/2011/02/19/i-saw-the-devil-trailer/#comments Sat, 19 Feb 2011 21:33:09 +0000 Krunk http://blog.hd-trailers.net/?p=18742 hd-trailers.netLink to Catalog

    I Saw The Devil Poster Lee Byung-hyun (The Good, the Bad and the Weird) stars as Dae-hoon, a special agent whose pregnant wife becomes the latest victim of a disturbed and brutal serial killer, captivatingly played by Oldboy's Choi Min-sik. Vowing revenge, Dae-hoon blurs the lines between hunter and hunted and good and evil, eventually becoming a monster himself in his twisted pursuit of revenge. From Korean genre master Kim Jee-woon (The Good, The Bad and The Weird and A Tale of Two Sisters) I SAW THE DEVIL is shockingly violent and stunningly accomplished, transcending the police procedural and pushing the boundaries of extreme Asian cinema in surprising and thrilling new ways. (Source)

    Apple Direct Download Unavailable Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/19/i-saw-the-devil-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/19/i-saw-the-devil-trailer/
    There Be Dragons (Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/iOTMYQuk0K0/ http://blog.hd-trailers.net/2011/02/19/there-be-dragons-trailer/#comments Sat, 19 Feb 2011 21:32:28 +0000 Krunk http://blog.hd-trailers.net/?p=18740 hd-trailers.netLink to Catalog

    There Be Dragons Poster Starring Charlie Cox (STARDUST), Wes Bentley (AMERICAN BEAUTY), Olga Kurylenko (QUANTUM OF SOLACE), Emmy Award-winning actor Derek Jacobi (GLADIATOR), Dougray Scott (MISSION IMPOSSIBLE II) and Rodrigo Santoro (300), THERE BE DRAGONS tells the story of London-based investigative journalist Robert Torres (Dougray Scott), who visits Spain to research a book about Josemaria Escriva (Cox), the controversial founder of Opus Dei. But Robert hits a wall, both professionally and personally, when his most promising source--his own father, Manolo Torres (Bentley), turns out to be his least cooperative one. Robert begins to unearth his father's toxic secrets when he learns that Manolo was not only born in the same Spanish town as Josemaria, but that they were childhood friends and attended the same seminary. The two men take radically different paths in life, with Josemaria dedicating his life to his faith while Manolo is swept into the brutal and tumultuous Spanish Civil War. Manolo descends into a dangerous and jealous obsession when the beautiful Hungarian revolutionary Ildiko (Olga Kurylenko) doesn't return his affections and instead gives herself to the courageous military leader, Oriol (Rodrigo Santoro). As Robert continues to unearth the secrets of Josemaria's life and Manolo's mysterious anger, their overlapping journeys are revealed with the truths and sorrows of their past choices, which compels Manolo to confront his own secret with one last opportunity of forgiveness. (Source)

    Apple Direct Download Unavailable Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/19/there-be-dragons-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/19/there-be-dragons-trailer/
    Thor (Trailer No. 3) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/F0iCb7QL6Xw/ http://blog.hd-trailers.net/2011/02/19/thor-trailer-no-3/#comments Sat, 19 Feb 2011 21:31:52 +0000 Krunk http://blog.hd-trailers.net/?p=18738 hd-trailers.netLink to Catalog

    Thor Poster Director Kenneth Branagh (Henry V) and I Am Legend scribe Mark Protosevich bring Marvel Comics strongman Thor (played by Star Trek's Chris Hemsworth) to the big screen in this big-budget adventure that chronicles the mystical roots of the Asgardian god. Natalie Portman, Anthony Hopkins, Jaimie Alexander, and Colm Feore co-star, with Tom Hiddleston playing the role of Thor's villainous brother, Loki. - Jason Buchanan, Rovi (Source)

    Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/19/thor-trailer-no-3/feed/ 0 http://blog.hd-trailers.net/2011/02/19/thor-trailer-no-3/
    Mars Needs Moms (Trailer No. 2) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/GJ7ysBZf2uU/ http://blog.hd-trailers.net/2011/02/19/mars-needs-moms-trailer-no-2/#comments Sat, 19 Feb 2011 21:30:15 +0000 Krunk http://blog.hd-trailers.net/?p=18736 hd-trailers.netLink to Catalog

    Mars Needs Moms Poster Take out the trash, eat your broccoli--who needs moms, anyway? Nine-year-old Milo (Seth Green) finds out just how much he needs his mom (Joan Cusack) when she's nabbed by Martians who plan to steal her mom-ness for their own young. Produced by the team behind 'Disney's A Christmas Carol' and 'The Polar Express', 'Mars Needs Moms' showcases Milo's quest to save his mom--a wild adventure in Disney Digital 3D and IMAX 3D that involves stowing away on a spaceship, navigating an elaborate, multi-level planet and taking on the alien nation and their leader (Mindy Sterling). With the help of a tech-savvy, underground earthman named Gribble (Dan Fogler) and a rebel Martian girl called Ki (Elisabeth Harnois), Milo just might find his way back to his mom--in more ways than one. (Source)

    Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/19/mars-needs-moms-trailer-no-2/feed/ 0 http://blog.hd-trailers.net/2011/02/19/mars-needs-moms-trailer-no-2/
    Something Borrowed (Theatrical Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/HsLZ1gC-8XQ/ http://blog.hd-trailers.net/2011/02/17/something-borrowed-theatrical-trailer/#comments Fri, 18 Feb 2011 05:43:04 +0000 Krunk http://blog.hd-trailers.net/?p=18732 hd-trailers.netLink to Catalog

    Something Borrowed (2011) Poster Rachel is a talented attorney at a top New York law firm, a generous and loyal friend and, unhappily, still single as her engaged best friend Darcy is constantly reminding her. But after one drink too many at her 30th birthday party, perpetual good girl Rachel unexpectedly ends up in bed with the guy she's had a crush on since law school, Dex, who just happens to be Darcy's fiance. When Rachel and Darcy's lifelong friendship collides with true love, it leads to unexpected complications and potentially explosive romantic revelations. Meanwhile, Ethan, who has been Rachel's constant confidante and sometimes conscience, has been harboring a secret of his own, and Marcus, an irrepressible womanizer, can't keep his mind out of the gutter or his hands off any girl within reach. (Source)

    Download: 480p, 720p, 1080p
    MP4 Encode
    : 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/17/something-borrowed-theatrical-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/17/something-borrowed-theatrical-trailer/
    The King’s Speech (Trailer 2) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/dlFtpKbPweU/ http://blog.hd-trailers.net/2011/02/17/the-kings-speech-trailer-2/#comments Fri, 18 Feb 2011 05:42:16 +0000 Krunk http://blog.hd-trailers.net/?p=18730 hd-trailers.netLink to Catalog

    The King's Speech Poster After the death of his father King George V (Michael Gambon) and the scandalous abdication of Prince Edward VII's (Guy Pearce), Bertie (Colin Firth) who has suffered from a debilitating speech impediment all his life, is suddenly crowned King George VI of England. With his country on the brink of war and in desperate need of a leader, his wife, Elizabeth (Helena Bonham Carter), the future Queen Mother, arranges for her husband to see an eccentric speech therapist, Lionel Logue (Geoffrey Rush). After a rough start, the two delve into an unorthodox course of treatment and eventually form an unbreakable bond. With the support of Logue, his family, his government and Winston Churchill (Timothy Spall), the King will overcome his stammer and deliver a radio-address that inspires his people and unites them in battle. Based on the true story of King George VI, THE KING'S SPEECH follows the Royal Monarch's quest to find his voice. (Source)

    Apple Direct Download Unavailable Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/17/the-kings-speech-trailer-2/feed/ 0 http://blog.hd-trailers.net/2011/02/17/the-kings-speech-trailer-2/
    Circo (Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/XxAozxrViMI/ http://blog.hd-trailers.net/2011/02/17/circo-trailer/#comments Fri, 18 Feb 2011 00:36:13 +0000 Krunk http://blog.hd-trailers.net/?p=18726 hd-trailers.netLink to Catalog

    Circo Poster Gorgeously filmed along the back roads of rural Mexico, CIRCO follows the Ponce family's hardscrabble circus as it struggles to stay together despite mounting debt, dwindling audiences, and a simmering family conflict. Tino, the ringmaster, is driven by his dream to lead his parents' circus to success and corrals the energy of his whole family, including his four young children, towards this singular goal. But his wife Ivonne is determined to make a change. Feeling exploited by her in-laws, she longs to return to her kids a childhood lost to laboring in the circus. Through this intricately woven story of a marriage in trouble and of a century-old family tradition that hangs in the balance, CIRCO opens the viewer to the luminous world of a traveling circus while examining the universal themes of family bonds, filial responsibility, and the weight of cultural inheritance. (Source)

    Apple Direct Download Unavailable Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/17/circo-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/17/circo-trailer/
    Arthur (Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/LmfUB6JraZA/ http://blog.hd-trailers.net/2011/02/17/arthur-trailer/#comments Fri, 18 Feb 2011 00:35:13 +0000 Krunk http://blog.hd-trailers.net/?p=18724 hd-trailers.netLink to Catalog

    Arthur Poster Irresponsible charmer Arthur Bach (Russell Brand) has always relied on two things to get by: his limitless fortune and the good sense of lifelong nanny Hobson (Helen Mirren) to keep him out of trouble. Now he faces his biggest challenge--choosing between an arranged marriage that will ensure his lavish lifestyle or an uncertain future with the one thing money can't buy, Naomi (Greta Gerwig), the only woman he has ever loved. With Naomi's inspiration and some unconventional help from Hobson, Arthur will take the most expensive risk of his life and finally learn what it means to become a man, in this re-imagining of the classic romantic comedy "Arthur." (Source)

    Apple Direct Download Unavailable Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/17/arthur-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/17/arthur-trailer/
    The Double Hour (Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/vClaPJKlcAw/ http://blog.hd-trailers.net/2011/02/17/the-double-hour-trailer/#comments Fri, 18 Feb 2011 00:34:35 +0000 Krunk http://blog.hd-trailers.net/?p=18721 hd-trailers.netLink to Catalog

    The Double Hour Poster Guido (Filippo Timi), a former cop, is a luckless veteran of the speed-dating scene in Turin. But, much to his surprise, he meets Slovenian immigrant Sonia (Ksenia Rappoport), a chambermaid at a high-end hotel. The two hit it off, and a passionate romance develops. After they leave the city for a romantic getaway in the country, things suddenly take a dark turn. As Sonia's murky past resurfaces, her reality starts to crumble. Everything in her life begins to change - - questions arise and answers only arrive through a continuous twist and turn of events keeping viewers on edge until the film's final moments. (Source)

    Apple Direct Download Unavailable Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/17/the-double-hour-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/17/the-double-hour-trailer/
    Certified Copy (Trailer) http://feeds.hd-trailers.net/~r/hd-trailers/blog/~3/oyMXplMwW8I/ http://blog.hd-trailers.net/2011/02/17/certified-copy-trailer/#comments Fri, 18 Feb 2011 00:33:54 +0000 Krunk http://blog.hd-trailers.net/?p=18719 hd-trailers.netLink to Catalog

    Certified Copy Poster Academy Award(R)-winner Juliette Binoche gives one of the finest performances of her career (for which she won the best actress award at Cannes) in CERTIFIED COPY, the first European film from Abbas Kiarostami (TASTE OF CHERRY). The film is a playful and provocative romance set against the lush, golden landscapes of Tuscany, a captivating story of a couple's apparent chance meeting and a masterful game of hide and seek exploring the nature of love, marriage and art. Andrew O'Hehir of Salon says, CERTIFIED COPY is "an elegant, wistful and picturesque tale of two ships passing in the Tuscan sunlight." (Source)

    Apple Direct Download Unavailable Download: 480p, 720p, 1080p

    ]]>
    http://blog.hd-trailers.net/2011/02/17/certified-copy-trailer/feed/ 0 http://blog.hd-trailers.net/2011/02/17/certified-copy-trailer/
    xmls-3.0.2/tests/soap/0000755000076500000240000000000013215604733013262 5ustar rpgstaffxmls-3.0.2/tests/soap/soap1.xml0000644000076500000240000000046310122063105015014 0ustar rpgstaff DIS xmls-3.0.2/tests/soap/soap2.xml0000644000076500000240000000050410122063105015011 0ustar rpgstaff 34.5 xmls-3.0.2/tests/soap/soap3.xml0000644000076500000240000000071310122063105015014 0ustar rpgstaff 12345 6.789 Of Mans First Disobedience, and the Fruit Of that Forbidden Tree, whose mortal tast Brought Death into the World, and all our woe, http://www.dartmouth.edu/~milton/reading_room/ xmls-3.0.2/tests/soap/soap4.xml0000644000076500000240000000076110122063105015020 0ustar rpgstaff 5 DEF xmls-3.0.2/tests/soap/soap5.xml0000644000076500000240000000064010122063105015015 0ustar rpgstaff DEF DEF Corp 34.1 xmls-3.0.2/tests/soap/soap6.xml0000644000076500000240000000113410122063105015015 0ustar rpgstaff SOAP-ENV:Server Server Error My application didn't work 1001 xmls-3.0.2/tests/xml-rpc/0000755000076500000240000000000013215604733013702 5ustar rpgstaffxmls-3.0.2/tests/xml-rpc/array.xml0000644000076500000240000000027610122063105015531 0ustar rpgstaff 12 Egypt 0 -31 xmls-3.0.2/tests/xml-rpc/blogger1.xml0000644000076500000240000000144510122063105016114 0ustar rpgstaff blogger.newPost C6CE3FFB3174106584CBB250C0B0519BF4E294 744145 ewilliams secret Today I had a peanut butter and pickle sandwich for lunch. Do you like peanut-butter and pickle sandwiches? I do. They're yummy. Please comment! false xmls-3.0.2/tests/xml-rpc/fault.xml0000644000076500000240000000056510122063105015527 0ustar rpgstaff faultCode 4 faultString Too many parameters. xmls-3.0.2/tests/xml-rpc/methodCall.xml0000644000076500000240000000026310122063105016463 0ustar rpgstaff examples.getStateName 41 xmls-3.0.2/tests/xml-rpc/methodResponse.xml0000644000076500000240000000023410122063105017404 0ustar rpgstaff South Dakota xmls-3.0.2/tests/xml-rpc/struct.xml0000644000076500000240000000030610122063105015731 0ustar rpgstaff lowerBound 18 upperBound 139 xmls-3.0.2/version.lisp-expr0000644000076500000240000000001013215604701014472 0ustar rpgstaff"3.0.2" xmls-3.0.2/web-page/0000755000076500000240000000000013215604733012645 5ustar rpgstaffxmls-3.0.2/web-page/clnet-page.shtml0000644000076500000240000000733513215604655015750 0ustar rpgstaff xmls - a small xml parser for common lisp

    XMLS, a simple XML parser for Common Lisp

    Downloads

    latest --> Better backwards compatibility (see manual for details). Additional export over 3.0.1 xmls-3.0.2 source signature md5
    Better backwards compatibility (see manual for details). xmls-3.0.1 source signature md5
    xmls-3.0 source signature md5
      xmls-1.7.1 source signature md5
      xmls-1.5 source signature md5
      xmls-1.4 source signature md5
      xmls-1.3 source signature md5
      xmls-1.2 source signature md5
      xmls-1.1 source signature md5
      xmls-1.0 source signature md5

    Source repository

    There is no publicly-accessible source repository for XMLS. Please submit patches to the maintainer. The likelihood of getting patches doesn't justify the effort of maintaining such a source repository. If this is a real problem for you, please contact the maintainer and we will arrange to provide you access to the private repository.

    xmls-3.0.2/web-page/styles.css0000644000076500000240000000361313214366761014712 0ustar rpgstaff/* $Id: mcp.css,v 1.7 2002/07/26 22:29:27 miles Exp $ */ /* * global styles */ body { background: white; color: black; font-size: 15px; font-family: serif; margin: 0; padding: 0; } a[href] { border-bottom: 1px dotted rgb(192,72,23); color: rgb(240,156,0); font-weight: bold; text-decoration: none; } a[href]:hover { color: #fff; background: black; font-weight: bold; text-decoration: none } a[href]:visited { color: rgb(255,176,20); font-weight: bold; text-decoration: none } img { border: 1px solid black } h1 { color: rgb(192,72,23) } h2,h3 { color: #777; } h2, h3 { text-transform: lowercase } ul { list-style-type: square; } pre { background: #ffd; border: 1px solid #bba; display: table; margin: 0.25em 1em; padding: 0.25em; } .logo { display: block; float: left; font-family: verdana; padding: 0.1em; } .logo span { color: rgb(255,180,0); font-size: 300%; font-variant: small-caps; font-weight: bold; padding: 5px 10px; } /* * general layout stuff */ div#nav { background: rgb(124,113,81); color: white; border-bottom: 5px solid black; font-family: sans-serif; margin: 0; padding: 0 1em; height: 4em; } div#nav a { border: 0; color: rgb(203,189,168); display: block; float: left; font-size: 120%; font-family: sans-serif; margin: 1em 1em; padding: 0; text-align: center; text-decoration: none; width: 6em; height: 1.5em; } div#nav a:hover { background: transparent; color: white; text-decoration: none } div#content { margin: 0 auto; padding: 0 2em; } #footer { border-top: 1px solid #ccc; padding: 0.5em 1em; margin: 1em } #footer img { border: 0; } #footer a[href] { border: 0; } #footer a[href]:hover { background: transparent; } /* * rpm pages */ table.rpmtable { margin: 1em; } table.rpmtable td { padding: 2px 0.5em; } .note { color: red; font-weight: bold; font-size: 80%; font-style: italic; } xmls-3.0.2/xmlrep-helpers.lisp0000644000076500000240000001141713014644726015025 0ustar rpgstaff;;;--------------------------------------------------------------------------- ;;; File Description: ;;; ;;; Contains utility functions that are helpful in manipulating the ;;; list representation that XMLS uses as the source or destination ;;; of translation to or from XML. ;;; ;;; History/Bugs/Notes: ;;; ;;; [2004/09/15:Robert P. Goldman] Created. ;;; ;;;--------------------------------------------------------------------------- (in-package :xmls) (defun make-xmlrep (tag &key attribs children) (make-node :name tag :attrs attribs :children children)) (defun xmlrep-add-child! (xmlrep child) (setf (node-children xmlrep) (append (node-children xmlrep) (list child)))) (defun xmlrep-tag (treenode) (node-name treenode)) (defun xmlrep-tagmatch (tag treenode) (unless (stringp treenode) ; child nodes to XMLREPs could be strings or nodes (string-equal tag (xmlrep-tag treenode)))) (defun xmlrep-attribs (treenode) (node-attrs treenode)) (defun (setf xmlrep-attribs) (attribs treenode) (setf (node-attrs treenode) attribs)) (defun xmlrep-children (treenode) (node-children treenode)) (defun (setf xmlrep-children) (children treenode) (setf (node-children treenode) children)) (defun xmlrep-string-child (treenode &optional (if-unfound :error)) (let ((children (xmlrep-children treenode))) (if (and (eq (length children) 1) (typep (first children) 'string)) (first children) (if (eq if-unfound :error) (error "Node does not have a single string child: ~a" treenode) if-unfound) ))) (defun xmlrep-integer-child (treenode) (parse-integer (xmlrep-string-child treenode))) (defun xmlrep-find-child-tags (tag treenode) "Find all the children of TREENODE with TAG." (remove-if-not #'(lambda (child) (xmlrep-tagmatch tag child)) (xmlrep-children treenode))) (defun xmlrep-find-child-tag (tag treenode &optional (if-unfound :error)) "Find a single child of TREENODE with TAG. Returns an error if there is more or less than one such child." (let ((matches (xmlrep-find-child-tags tag treenode))) (case (length matches) (0 (if (eq if-unfound :error) (error "Couldn't find child tag ~A in ~A" tag treenode) if-unfound)) (1 (first matches)) (otherwise (error "Child tag ~A multiply defined in ~A" tag treenode))))) (defun xmlrep-attrib-value (attrib treenode &optional (if-undefined :error)) "Find the value of ATTRIB, a string, in TREENODE. if there is no ATTRIB, will return the value of IF-UNDEFINED, which defaults to :ERROR." (let ((found-attrib (find-attrib attrib treenode))) (cond (found-attrib (second found-attrib)) ((eq if-undefined :error) (error "XML attribute ~S undefined in ~S" attrib treenode)) (t if-undefined)))) (defun find-attrib (attrib treenode) "Returns the attrib CELL (not the attrib value) from TREENODE, if found. This cell will be a list of length 2, the attrib name (a string) and its value." (find attrib (xmlrep-attribs treenode) :test #'string= :key #'car)) (defun (setf xmlrep-attrib-value) (value attrib treenode) ;; ideally, we would check this... (let ((old-val (xmlrep-attrib-value attrib treenode nil))) (if old-val (cond ((null value) ;; just delete this attribute... (setf (xmlrep-attribs treenode) (remove attrib (xmlrep-attribs treenode) :test #'string= :key #'first)) nil) (t (let ((cell (find-attrib attrib treenode))) (setf (second cell) value) value))) ;; no old value (cond ((null value) nil) ; no old value to delete (t (setf (xmlrep-attribs treenode) (append (xmlrep-attribs treenode) (list (list attrib value)))) value))))) (defun xmlrep-boolean-attrib-value (attrib treenode &optional (if-undefined :error)) "Find the value of ATTRIB, a string, in TREENODE. The value should be either \"true\" or \"false\". The function will return T or NIL, accordingly. If there is no ATTRIB, will return the value of IF-UNDEFINED, which defaults to :ERROR." (let ((val (xmlrep-attrib-value attrib treenode if-undefined))) (cond ((string-equal val "true") t) ((string-equal val "false") nil) (t (error "Not a boolean value, ~A for attribute ~A." val attrib))))) xmls-3.0.2/xmls.asd0000644000076500000240000000367113215572734012646 0ustar rpgstaff;;; -*- Lisp -*- ;;; $Id: xmls.asd 2399 2017-12-17 22:55:24Z rpgoldman $ (defpackage #:xmls-system (:use #:cl #:asdf)) (in-package :xmls-system) (defclass xmls-source-file (cl-source-file) () (:documentation "Component class to quash some ACL warnings.") ) (pushnew :xmls-nodes-are-structs *features*) ;#+allegro ;(defmethod perform :around ((op compile-op) (file xmls-source-file)) ; "Quash ACL warning about nested reader macros." ; (let ((excl:*warn-on-nested-reader-conditionals* nil)) ; (call-next-method))) ; (defsystem :xmls :version (:read-file-form "version.lisp-expr") :license "BSD" :maintainer "Robert P. Goldman " :in-order-to ((test-op (test-op "xmls/test") (test-op "xmls/unit-test"))) :components ((:file "xmls" #+asdf-unicode :encoding #+asdf-unicode :utf-8) (:file "xmlrep-helpers" ;; package is defined in XMLS. [2009/02/24:rpg] :depends-on ("xmls")))) (defsystem :xmls/test :perform (test-op (op c) (declare (ignorable op c)) (unless (uiop:symbol-call :xmls :test :interactive t) (error "Failed XMLS test."))) :depends-on (xmls)) (defsystem xmls/unit-test :depends-on (xmls fiveam) :perform (test-op (op c) (declare (ignorable op c)) (uiop:symbol-call :fiveam :run! (uiop:find-symbol* '#:xmls-test :xmls-test))) :components ((:file "fiveam-tests"))) (defsystem :xmls/octets :components ((:file "octets-xml")) ;; detecting the encoding doesn't work properly with flexi-streams 1.0.14 :depends-on ("xmls" (:version "flexi-streams" "1.0.15") "cl-ppcre") :version (:read-file-form "version.lisp-expr") :perform (test-op (op c) (declare (ignorable op c)) (unless (uiop:symbol-call :xmls/octets :test) (error "Test failures in XMLS/octets.")))) xmls-3.0.2/xmls.lisp0000644000076500000240000010126613215604440013033 0ustar rpgstaff;;; $Id: xmls.lisp 2400 2017-12-18 00:17:36Z rpgoldman $ ;;; xmls ;;; a simple xml parser for common lisp ;;; author: Miles Egan ;;; see COPYING file for license information (defpackage xmls (:use :cl) ; :cl-user (:shadow #:read-char #:unread-char) (:export node-name node-ns node-attrs node-children make-node parse toxml write-xml node-p nodelist->node node->nodelist node ; needed to support use in typep ;; backwards compatibility #:parse-to-list ;; processing instruction objects proc-inst-p proc-inst-target proc-inst-contents write-prologue write-prolog ;; additional helpers from Robert P. Goldman make-xmlrep xmlrep-add-child! xmlrep-tag xmlrep-tagmatch xmlrep-attribs xmlrep-children xmlrep-string-child xmlrep-integer-child xmlrep-find-child-tags xmlrep-find-child-tag xmlrep-attrib-value xmlrep-boolean-attrib-value ;;debugging debug-on debug-off)) (in-package :xmls) ;;;----------------------------------------------------------------------------- ;;; GLOBAL SETTINGS ;;;----------------------------------------------------------------------------- (defvar *strip-comments* t) (defvar *compress-whitespace* t) (defvar *test-verbose* nil) (defvar *discard-processing-instructions*) (defvar *entities* #(("lt;" #\<) ("gt;" #\>) ("amp;" #\&) ("apos;" #\') ("quot;" #\"))) (eval-when (:compile-toplevel :load-toplevel :execute) (defvar *whitespace* (remove-duplicates '(#\Newline #\Space #\Tab #\Return #\Linefeed)))) (defvar *char-escapes* (let ((table (make-array 256 :element-type 'string :initial-element ""))) (declare (type vector *entities*)) (loop for code from 0 to 255 for char = (code-char code) for entity = (first (find char *entities* :test #'char= :key #'second)) do (setf (svref table code) (cond (entity (concatenate 'string "&" entity)) ((and (or (< code 32) (> code 126)) (not (= code 10)) (not (= code 9))) (format nil "&#x~x;" code)) (t (format nil "~x" char)))) finally (return table)) table)) ;;;--------------------------------------------------------------------------- ;;; DYNAMIC VARIABLES ;;;--------------------------------------------------------------------------- (defvar *parser-stream* nil "The currently-being-parsed stream. Used so that we can appropriately track the line number.") (defvar *parser-line-number* nil) ;;;----------------------------------------------------------------------------- ;;; CONDITIONS ;;;----------------------------------------------------------------------------- (define-condition xml-parse-error (error) ((line :initarg :line :initform nil :reader error-line)) (:report (lambda (xpe stream) (format stream "XML-PARSE-ERROR~@[ at line ~d~]" (error-line xpe))))) (defmethod initialize-instance :after ((obj xml-parse-error) &key) (unless (slot-value obj 'line) (when *parser-line-number* (setf (slot-value obj 'line) *parser-line-number*)))) ;;;----------------------------------------------------------------------------- ;;; NODE INTERFACE ;;;----------------------------------------------------------------------------- (defstruct (node (:constructor %make-node)) name ns attrs children) (defun make-node (&key name ns attrs child children) "Convenience function for creating a new xml node." (when (and child children) (error "Cannot specify both :child and :children for MAKE-NODE.")) (let ((children (if child (list child) children))) (%make-node :name name :ns ns :children children :attrs attrs))) (defun nodelist->node (nodelist) "Take old-style list representation of XMLS nodes and translate it into a NODE." (if (stringp nodelist) ;; child is a string -- a literal child ;; FIXME: is that the right XML jargon? nodelist (make-node :name (if (consp (car nodelist)) (caar nodelist) (car nodelist)) :ns (if (consp (car nodelist)) (cdar nodelist) nil) :children (mapcar 'nodelist->node (cddr nodelist)) :attrs (second nodelist)))) (defun node->nodelist (node) "Backwards compatibility function. Will take a NODE \(the output of PARSE\), and translate it into a list structure that looks like the output of PARSE from XMLS 1.x. This should only be needed if there's client code that didn't obey the API and instead directly accessed the Lisp list structures that XMLS used to produce. Such code should be fixed." (etypecase node (string node) (node (list* (if (node-ns node) (cons (node-name node) (node-ns node)) (node-name node)) (node-attrs node) (mapcar 'node->nodelist (node-children node)))))) ;;;----------------------------------------------------------------------------- ;;;--------------------------------------------------------------------------- ;;; XML Processing Instruction ;;;--------------------------------------------------------------------------- (defstruct proc-inst (target "" :type string) (contents "" :type string) ) ;;;----------------------------------------------------------------------------- ;;; UTILITY FUNCTIONS ;;;----------------------------------------------------------------------------- (defun compress-whitespace (str) (if *compress-whitespace* (progn (setf str (string-trim *whitespace* str)) (if (= 0 (length str)) nil str)) str)) ;;;--------------------------------------------------------------------------- ;;; Replicated the Norvig debug to avoid annoying dependency ;;;--------------------------------------------------------------------------- (defvar *dbg-ids* nil "Identifiers used by dbg") (defmacro dbg (id format-string &rest args) "Print debugging info if (DEBUG ID) has been specified." `(when (member ',id *dbg-ids*) (fresh-line *debug-io*) (funcall #'format *debug-io* ,format-string ,@args))) (defun debug-on (&rest ids) "Start dbg output on the given ids." (setf *dbg-ids* (union ids *dbg-ids*))) (defun debug-off (&rest ids) "Stop dbg on the ids. With no ids, stop dbg altogether." (setf *dbg-ids* (if (null ids) nil (set-difference *dbg-ids* ids)))) ;; (defun write-escaped (string stream) ;; "Writes string to stream with all character entities escaped." ;; #-allegro (coerce string 'simple-base-string) ;; (when (eq stream t) (setf stream *standard-output*)) ;; (loop for char across string ;; for esc = (svref *char-escapes* (char-code char)) ;; do (write-sequence esc stream))) ;;; Alternative definition, lifted from Edi Weitz's hunchentoot, per Norman ;;; Werner's suggestion. [2010/12/09:rpg] (defun write-escaped (string stream) (write-string (escape-for-html string) stream)) (defun escape-for-html (string) "Escapes the characters #\\<, #\\>, #\\', #\\\", and #\\& for HTML output." (with-output-to-string (out) (with-input-from-string (in string) (loop for char = (read-char in nil nil) while char do (case char ((#\<) (write-string "<" out)) ((#\>) (write-string ">" out)) ((#\") (write-string """ out)) ((#\') (write-string "'" out)) ((#\&) (write-string "&" out)) (otherwise (write-char char out))))))) (defun make-extendable-string (&optional (size 10)) "Creates an adjustable string with a fill pointer." (make-array size :element-type 'character :adjustable t :fill-pointer 0)) (defun push-string (c string) "Shorthand function for adding characters to an extendable string." (vector-push-extend c string)) (defun translate-raw-value (raw-value) "Helper function for xml generation." (etypecase raw-value (string raw-value) (symbol (symbol-name raw-value)) (integer (format nil "~D" raw-value)) (float (format nil "~G" raw-value)))) (defun generate-xml (e s indent) "Renders a lisp node tree to an xml string stream." (if (> indent 0) (incf indent)) (etypecase e (node (progn (dotimes (i (* 2 (- indent 2))) (write-char #\Space s)) (format s "<~A~@[ xmlns=\"~A\"~]" (node-name e) (node-ns e)) (loop for a in (node-attrs e) do (progn (write-char #\Space s) (write-string (first a) s) (write-char #\= s) (write-char #\" s) (write-escaped (translate-raw-value (second a)) s) (write-char #\" s)))) (if (null (node-children e)) (progn (write-string "/>" s) (if (> indent 0) (write-char #\Newline s))) (progn (write-char #\> s) (if (> indent 0) (write-char #\Newline s)) (mapc #'(lambda (c) (generate-xml c s indent)) (node-children e)) (if (> indent 0) (progn (dotimes (i (* 2 (- indent 2))) (write-char #\Space s)))) (format s "" (node-name e)) (if (> indent 0) (write-char #\Newline s))))) (number (generate-xml (translate-raw-value e) s indent)) (symbol (generate-xml (translate-raw-value e) s indent)) (string (progn (if (> indent 0) (progn (dotimes (i (* 2 (- indent 2))) (write-char #\Space s)))) (write-escaped e s) (if (> indent 0) (write-char #\Newline s)))))) ;;;----------------------------------------------------------------------------- ;;; PARSER STATE & LOOKAHEAD ;;;----------------------------------------------------------------------------- (defstruct state "Represents parser state. Passed among rules to avoid threading issues." (got-doctype nil) (lines 1 :type integer) nsstack stream) (defun resolve-entity (ent) "Resolves the xml entity ENT to a character. Numeric entities are converted using CODE-CHAR, which only works in implementations that internally encode strings in US-ASCII, ISO-8859-1 or UCS." (declare (type simple-string ent)) (declare (type vector *entities*)) (or (and (>= (length ent) 2) (char= (char ent 0) #\#) (code-char (if (char= (char ent 1) #\x) (parse-integer ent :start 2 :end (- (length ent) 1) :radix 16) (parse-integer ent :start 1 :end (- (length ent) 1))))) (second (find ent *entities* :test #'string= :key #'first)) (error "Unable to resolve entity ~S" ent))) (declaim (inline peek-stream)) (defun peek-stream (stream) "Looks one character ahead in the input stream. Serves as a potential hook for character translation." (peek-char nil stream nil)) (defun read-stream (stream) "Reads a character from the stream, translating entities as it goes." (let ((c (read-char stream nil))) (if (and c (not (char= c #\&))) c (loop with ent = (make-extendable-string 5) for char = (read-char stream) do (push-string char ent) until (char= char #\;) finally (return (resolve-entity (coerce ent 'simple-string))))))) ;;;--------------------------------------------------------------------------- ;;; Shadow READ-CHAR and UNREAD-CHAR so we can count lines while we parse... ;;;--------------------------------------------------------------------------- (defun read-char (&optional (stream *standard-input*) (eof-error-p t) eof-value recursive-p) (let ((eof-p nil)) (let ((c (catch 'char-return (handler-bind ((end-of-file #'(lambda (e) (declare (ignore e)) (unless eof-error-p (setf eof-p t) (throw 'char-return eof-value))))) (common-lisp:read-char stream t nil recursive-p))))) (when (and (eq stream *parser-stream*) (not eof-p) (char= c #\newline)) (incf *parser-line-number*)) c))) (defun unread-char (char &optional (stream *standard-input*)) (when (char= char #\newline) (decf *parser-line-number*)) (common-lisp:unread-char char stream)) ;;;END shadowing-------------------------------------------------------------- (define-symbol-macro next-char (peek-stream (state-stream s))) (defmacro eat () "Consumes one character from the input stream." `(read-char (state-stream s))) (defmacro puke (char) "The opposite of EAT." `(unread-char ,char (state-stream s))) (defmacro match (&rest matchers) "Attempts to match the next input character with one of the supplied matchers." `(let ((c (peek-stream (state-stream s)))) (and (or ,@(loop for m in matchers collect (etypecase m (standard-char `(char= ,m c)) (symbol `(,m c))))) ;; cheat here a little bit - eat entire char entity instead ;; of peeked char (read-stream (state-stream s))))) (defmacro match-seq (&rest sequence) "Tries to match the supplied matchers in sequence with characters in the input stream." `(and ,@(loop for s in sequence collect `(match ,s)))) (defmacro match* (&rest sequence) "Matches any occurances of any of the supplied matchers." `(loop with data = (make-extendable-string 10) for c = (match ,@sequence) while c do (push-string c data) finally (return data))) (defmacro match+ (&rest sequence) "Matches one or more occurances of any of the supplied matchers." `(and (peek ,@sequence) (match* ,@sequence))) (defmacro peek (&rest matchers) "Looks ahead for an occurance of any of the supplied matchers." `(let ((c (peek-stream (state-stream s)))) (or ,@(loop for m in matchers collect (etypecase m (standard-char `(char= ,m c)) (symbol `(,m c))))))) (defmacro must (&rest body) "Throws a parse error if the supplied forms do not succeed." `(or (progn ,@body) (error 'xml-parse-error))) ;;;----------------------------------------------------------------------------- ;;; PARSER INTERNAL FUNCTIONS ;;;----------------------------------------------------------------------------- (defstruct element "Common return type of all rule functions." (type nil :type symbol) (val nil)) (defun resolve-namespace (elem env) "Maps the ns prefix to its associated url via the supplied ns env." (let ((ns (node-ns elem))) (dolist (e env) (let ((nsurl (assoc ns e :test #'string=))) (and nsurl (setf (node-ns elem) (cadr nsurl)) (return ns)))))) ;;;----------------------------------------------------------------------------- ;;; MATCH AND RULE BUILDING UTILITIES ;;;----------------------------------------------------------------------------- (defmacro defmatch (name &rest body) "Match definition macro that provides a common lexical environment for matchers." `(defun ,name (c) ,@body)) (defmacro defrule (name &rest body) "Rule definition macro that provides a common lexical environment for rules." `(defun ,name (s) ,@body)) (defmacro matchfn (name) "Convenience macro for creating an anonymous function wrapper around a matcher macro." `(lambda (s) (match ,name))) (defun none-or-more (s func) "Collects any matches of the supplied rule with the input stream." (declare (type function func)) (let ((val (funcall func s))) (if val (multiple-value-bind (res nextval) (none-or-more s func) (values res (cons val nextval))) (values t nil)))) (defun one-or-more (s func) "Collects one or more matches of the supplied rule with the input stream." (declare (type function func)) (let ((val (funcall func s))) (if val (multiple-value-bind (res nextval) (none-or-more s func) (declare (ignore res)) (cons val nextval)) nil))) ;;;----------------------------------------------------------------------------- ;;; MATCHERS ;;;----------------------------------------------------------------------------- (defmatch digit () (and c (digit-char-p c))) (defmatch letter () (and c (alpha-char-p c))) ;; Modified because *whitespace* is not defined at compile ;; time. [2004/08/31:rpg] (defmatch ws-char () (member c *whitespace*)) ;;; (case c ;;; (#.*whitespace* t) ;;; (t nil))) (defmatch namechar () (or (and c (alpha-char-p c)) (and c (digit-char-p c)) (case c ((#\. #\- #\_ #\:) t)))) (defmatch ncname-char () (or (and c (alpha-char-p c)) (and c (digit-char-p c)) (case c ((#\. #\- #\_) t)))) (defmatch attr-text-dq () (and c (not (member c (list #\< #\"))))) (defmatch attr-text-sq () (and c (not (member c (list #\< #\'))))) (defmatch chardata () (and c (not (char= c #\<)))) (defmatch comment-char () (and c (not (eql c #\-)))) ;;;----------------------------------------------------------------------------- ;;; RULES ;;;----------------------------------------------------------------------------- (defrule ncname () (and (peek letter #\_) (match+ ncname-char))) (defrule qname () (let (name suffix) (and (setf name (ncname s)) (or (and (match #\:) (setf suffix (ncname s))) t)) (values name suffix))) (defrule attr-or-nsdecl () (let (suffix name val) (and (setf (values name suffix) (qname s)) (or (and (progn (match* ws-char) (match #\=)) (or (and (progn (match* ws-char) (match #\")) (setf val (match* attr-text-dq)) (match #\")) (and (progn (match* ws-char) (match #\')) (setf val (match* attr-text-sq)) (match #\')))) t) (if (string= "xmlns" name) (list 'nsdecl suffix val) (list 'attr (or suffix name) val))))) (defrule ws () (and (match+ ws-char) (make-element :type 'whitespace :val nil))) (defrule name () (and (peek namechar #\_ #\:) (match* namechar))) (defrule ws-attr-or-nsdecl () (and (ws s) (attr-or-nsdecl s))) (defrule start-tag () (let (name suffix attrs nsdecls) (and (peek namechar) (setf (values name suffix) (qname s)) (multiple-value-bind (res a) (none-or-more s #'ws-attr-or-nsdecl) (mapcar (lambda (x) (if (eq (car x) 'attr) (push (cdr x) attrs) (push (cdr x) nsdecls))) a) res) (or (ws s) t) (values (make-node :name (or suffix name) :ns (and suffix name) :attrs attrs) nsdecls)))) (defrule end-tag () (let (name suffix) (and (match #\/) (setf (values name suffix) (qname s)) (or (ws s) t) (match #\>) (make-element :type 'end-tag :val (or suffix name))))) (defrule comment () (and (match-seq #\! #\- #\-) (progn (loop until (match-seq #\- #\- #\>) do (eat)) t) (make-element :type 'comment))) ;;; For the CDATA matching of ]]> I by hand generated an NFA, and then ;;; determinized it (also by hand). Then I did a simpler thing of just pushing ;;; ALL the data onto the data string, and truncating it when done. (defrule comment-or-cdata () (and (peek #\!) (must (or (comment s) (and (match-seq #\[ #\C #\D #\A #\T #\A #\[) (loop with data = (make-extendable-string 50) with state = 0 for char = (eat) do (push-string char data) do (case state (0 (case char (#\] (dbg :cdata "State 0 Match #\], go to state {0,1} = 4.") (setf state 4)) (otherwise (dbg :cdata "State 0 Non-], go to (remain in) state 0.")))) (4 ; {0, 1} (case char (#\] (dbg :cdata "State 4 {0, 1}, match ], go to state {0,1,2} = 5") (setf state 5)) (otherwise (dbg :cdata "State 4 {0, 1}, Non-], go to state 0.") (setf state 0)))) (5 ; {0, 1, 2} (case char (#\] (dbg :cdata "State 5 {0, 1, 2}, match ], stay in state 5.")) (#\> (dbg :cdata "State 5 {0, 1, 2}, match >, finish match and go to state 3.") (setf state 3)) (otherwise (dbg :cdata "State 5 {0, 1, 2}, find neither ] nor >; go to state 0.") (setf state 0)))) ) until (eql state 3) finally (return (make-element :type 'cdata :val (coerce ;; rip the ]]> off the end of the data and return it... (subseq data 0 (- (fill-pointer data) 3)) 'simple-string))))))))) (declaim (ftype function element)) ; forward decl for content rule (defrule content () (if (match #\<) (must (or (comment-or-cdata s) (processing-instruction s) (element s) (end-tag s))) (or (let (content) (and (setf content (match+ chardata)) (make-element :type 'data :val (compress-whitespace content))))))) (defrule element () (let (elem children nsdecls end-name) (and ;; parse front end of tag (multiple-value-bind (e n) (start-tag s) (setf elem e) (setf nsdecls n) e) ;; resolve namespaces *before* parsing children (if nsdecls (push nsdecls (state-nsstack s)) t) (or (if (or nsdecls (state-nsstack s)) (resolve-namespace elem (state-nsstack s))) t) ;; parse end-tag and children (or (match-seq #\/ #\>) (and (match #\>) (loop for c = (content s) while c do (etypecase c (element (case (element-type c) (end-tag (return (setf end-name (element-val c)))) ;; processing instructions may be discarded (pi (unless *discard-processing-instructions* (when (element-val c) (push (element-val c) children)))) (t (if (element-val c) (push (element-val c) children))))))) (string= (node-name elem) end-name))) ;; package up new node (progn (setf (node-children elem) (nreverse children)) (make-element :type 'elem :val elem))))) (defrule processing-instruction () (let (name contents) (and (match #\?) (setf name (name s)) (not (string= name "xml")) ;; contents of a processing instruction can be arbitrary stuff, as long ;; as it doesn't contain ?>... (setf contents (pi-contents s)) ;; if we get here, we have eaten ?> off the input in the course of ;; processing PI-CONTENTS (make-element :type 'pi :val (make-proc-inst :target name :contents contents))))) (defrule pi-contents () (loop with data = (make-extendable-string 50) with state = 0 for char = (eat) do (push-string char data) do (ecase state (0 (case char (#\? (dbg :pi-contents "State 0 Match #\?, go to state 1.") (setf state 1)) (otherwise (dbg :pi-contents "State 0 ~c, go to (remain in) state 0." char)))) (1 (case char (#\> (dbg :pi-contents "State 1 Match #\>, done.") (setf state 2)) (otherwise (dbg :pi-contents "State 1, ~c, do not match #\>, return to 0." char) (setf state 0))))) until (eql state 2) finally (return (coerce ;; rip the ?> off the end of the data and return it... (subseq data 0 (max 0 (- (fill-pointer data) 2))) 'simple-string)))) (defrule xmldecl () (let (name contents) (and (match #\?) (setf name (name s)) (string= name "xml") (setf contents (none-or-more s #'ws-attr-or-nsdecl)) (match-seq #\? #\>) (make-element :type 'xmldecl :val contents)))) (defrule comment-or-doctype () ;; skip dtd - bail out to comment if it's a comment ;; only match doctype once (and (peek #\!) (or (comment s) (and (not (state-got-doctype s)) (must (match-seq #\D #\O #\C #\T #\Y #\P #\E)) (loop with level = 1 do (case (eat) (#\> (decf level)) (#\< (incf level))) until (eq level 0) finally (return t)) (setf (state-got-doctype s) t) (make-element :type 'doctype))))) (defrule misc () (or (ws s) (and (match #\<) (must (or (processing-instruction s) (comment-or-doctype s) (element s)))))) (defrule document () (let (elem) (if (match #\<) (must (or (xmldecl s) (comment-or-doctype s) (setf elem (element s))))) ;; NOTE: I don't understand this: it seems to parse arbitrary crap (unless elem (loop for c = (misc s) while c do (cond ((eql (element-type c) 'elem) (return (setf elem c))) ((and (eql (element-type c) 'pi) (not *discard-processing-instructions*)) (return (setf elem c)))))) (and elem (element-val elem)))) ;;;----------------------------------------------------------------------------- ;;; PUBLIC INTERFACE ;;;----------------------------------------------------------------------------- (defun write-xml (e s &key (indent nil)) "Renders a lisp node tree to an xml stream. Indents if indent is non-nil." (if (null s) (toxml e :indent indent) (generate-xml e s (if indent 1 0)))) (defun write-prologue (xml-decl doctype s) "Render the leading and tags to an xml stream." (format s "~%") (when doctype (format s "~%" doctype))) (defun write-prolog (xml-decl doctype s) (write-prologue xml-decl doctype s)) (defun toxml (e &key (indent nil)) "Renders a lisp node tree to an xml string." (with-output-to-string (s) (write-xml e s :indent indent))) (defun parse (s &key (compress-whitespace t) (quash-errors t)) "Parses the supplied stream or string into a lisp node tree." (let* ((*compress-whitespace* compress-whitespace) (*discard-processing-instructions* t) (stream (etypecase s (string (make-string-input-stream s)) (stream s))) (*parser-stream* stream) (*parser-line-number* 1)) (if quash-errors (handler-case (document (make-state :stream stream)) (end-of-file () nil) (xml-parse-error () nil)) (document (make-state :stream stream))))) (defun parse-to-list (&rest args) (node->nodelist (apply #'parse args))) (defparameter *test-files* (mapcar #'(lambda (x) (asdf:system-relative-pathname "xmls" (format nil "tests/~a" x))) (list "ant/build.xml" "beep/greeting1.xml" "beep/msg1.xml" "cdata/cdata1.xml" "char-encoding/flux-test-utf-8.xml" "dav/propfind1.xml" "dav/propfind2r.xml" "dav/propfind3.xml" "large/two_gent.xml" "misc/entity.xml" "misc/example.xml" "misc/minimal.xml" "misc/minimal1.xml" "misc/minimal2.xml" "misc/minimal3.xml" "misc/whitespace.xml" "namespace/namespace1.xml" "namespace/namespace2.xml" "namespace/namespace3.xml" "nxml/genetics-article.xml" "nxml/no-processing-instructions.xml" "nxml/processing-instructions.xml" "rss.xml" "soap/soap1.xml" "soap/soap2.xml" "soap/soap3.xml" "soap/soap4.xml" "soap/soap5.xml" "soap/soap6.xml" "xml-rpc/array.xml" "xml-rpc/blogger1.xml" "xml-rpc/fault.xml" "xml-rpc/methodCall.xml" "xml-rpc/methodResponse.xml" "xml-rpc/struct.xml"))) #+(or sbcl cmu allegro abcl ccl clisp) (defun test (&key interactive (test-files *test-files*)) "Run the test suite. If it fails, either return NIL \(if INTERACTIVE\), otherwise exit with an error exit status." ;;(sb-profile:profile "XMLS") #+cmu(extensions:gc-off) ;; too noisy #+clisp (pprint ext:*args*) (let ((exit-code 0)) (dolist (test (or test-files #-(or ccl clisp) (cdr #+sbcl (member "--" sb-ext:*posix-argv* :test 'equal) #+abcl extensions:*command-line-argument-list* #+cmu (member "--" extensions:*command-line-strings* :test 'equal) #+allegro (sys:command-line-arguments) #+clisp ext:*args* #+ccl ccl:*unprocessed-command-line-arguments*))) (catch 'test-failure (handler-bind ((error #'(lambda (c) (format t "FAILED with error:~%~a~%" c) (setf exit-code 1) (throw 'test-failure nil)))) (with-open-file (str test :direction :input) (if *test-verbose* (let ((parsed (parse str :compress-whitespace t))) (if parsed (format t "~A~%" (toxml parsed :indent t)) (progn (format t "~&Failed to parse ~A~%" test) (setf exit-code 1)))) (progn (format t "~40A" (concatenate 'string (namestring test) "... ")) (force-output) (cond ((parse str) (format t "ok~%")) (t (setf exit-code 1) (format t "FAILED!~%")))))) (with-open-file (str test :direction :input) (if *test-verbose* (let ((parsed (parse-to-list str :compress-whitespace t))) (if parsed (format t "~A~%" (toxml parsed :indent t)) (progn (format t "~&Failed to parse ~A~%" test) (setf exit-code 1)))) (progn (format t "~40A" (concatenate 'string (namestring test) "... ")) (force-output) (cond ((parse-to-list str) (format t "ok~%")) (t (setf exit-code 1) (format t "FAILED!~%"))))))))) (catch 'test-failure (handler-bind ((error #'(lambda (c) (format t "FAILED with error:~%~S~%" c) (setf exit-code 1) (throw 'test-failure nil)))) (format t "~40A" "Escaped writing...") (force-output) (with-output-to-string (str) (write-escaped "ÄΩ" str)) (format t "ok~%"))) (if interactive (zerop exit-code) (uiop:quit exit-code))))