From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jambunathan K Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] OpenDocument schema files Date: Sun, 19 Jun 2011 19:49:42 +0530 Message-ID: <81hb7lgayp.fsf@gmail.com> References: <81zkllh423.fsf@gmail.com> <87wrgoe7k0.fsf@stupidchicken.com> <81lix4p4ac.fsf@gmail.com> <81liwxgbkl.fsf_-_@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: dough.gmane.org 1308493239 6502 80.91.229.12 (19 Jun 2011 14:20:39 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 19 Jun 2011 14:20:39 +0000 (UTC) Cc: emacs-devel@gnu.org To: Chong Yidong Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jun 19 16:20:35 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QYIrZ-0006K6-UJ for ged-emacs-devel@m.gmane.org; Sun, 19 Jun 2011 16:20:34 +0200 Original-Received: from localhost ([::1]:51456 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYIrZ-0005jo-3e for ged-emacs-devel@m.gmane.org; Sun, 19 Jun 2011 10:20:33 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:33461) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYIqA-0005UV-4S for emacs-devel@gnu.org; Sun, 19 Jun 2011 10:19:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QYIq8-0000lI-Ll for emacs-devel@gnu.org; Sun, 19 Jun 2011 10:19:05 -0400 Original-Received: from mail-pv0-f169.google.com ([74.125.83.169]:63214) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QYIq8-0000lC-2w for emacs-devel@gnu.org; Sun, 19 Jun 2011 10:19:04 -0400 Original-Received: by pvc12 with SMTP id 12so311687pvc.0 for ; Sun, 19 Jun 2011 07:19:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:references:mail-followup-to :date:in-reply-to:message-id:user-agent:mime-version:content-type; bh=A06G84qB+Rz8Nfy489ExvZ/zCNXoDcfUmZknjLPRrLs=; b=t1z2fdP1pJHxSHAp7/+nxQbQiLgSMBop5dYie05PkGMUUIdrxjg4rNGIHthB3COdRH ML5qcGHJAvr9bI4vO5u3te+SBzPwYi8T2upCrKulvXO4d+L+cN2JMvrXQXKJ3XSlwxkf r60z6TQNwx4EI+yttNsEbDuQ5bJoTKVSsz4iQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:mail-followup-to:date:in-reply-to :message-id:user-agent:mime-version:content-type; b=RA8Fqk5fdB7GVKDn8UxILLK063sr+zF27OClTLWJDZdmT57hY4OrwL7puwqF6KQ1RP HomaDxM4Lj6bINovJKrKaJ8VoA8Qynk9GHpEShuhVMFe2sYFZMjVE4ly1auJqura3QcL +nAwiuAcVJ4ZfMVOy1o0KPtFAQwHLicrviRkU= Original-Received: by 10.68.35.33 with SMTP id e1mr1774676pbj.305.1308493143004; Sun, 19 Jun 2011 07:19:03 -0700 (PDT) Original-Received: from JAMBU-NETBOOK ([115.242.253.129]) by mx.google.com with ESMTPS id d1sm923972pbj.24.2011.06.19.07.18.58 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 19 Jun 2011 07:19:01 -0700 (PDT) Mail-Followup-To: Chong Yidong , emacs-devel@gnu.org In-Reply-To: <81liwxgbkl.fsf_-_@gmail.com> (Jambunathan K.'s message of "Sun, 19 Jun 2011 19:36:34 +0530") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (windows-nt) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 74.125.83.169 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:140673 Archived-At: --=-=-= Content-Type: text/plain Here comes the unit test instructions. (My bad! I should have attached this with the PATCH) 0. Apply the previous patch 1. Open the attached hand-created test.odt file in archive mode (Note: .odt files are zip files) 2. You are likely to see a bunch of xml file as shown below. --8<---------------cut here---------------start------------->8--- M Filemode Length Date Time File - ---------- -------- ----------- -------- ----------------------- [snip] -rw-rw-rw- 3008 19-Jun-2011 13:07:44 content.xml -rw-rw-rw- 532 19-Jun-2011 13:07:44 manifest.rdf -rw-rw-rw- 11100 19-Jun-2011 13:07:44 styles.xml -rw-rw-rw- 1127 19-Jun-2011 13:07:44 meta.xml [snip] -rwx------ 8855 19-Jun-2011 18:40:04 settings.xml -rw-rw-rw- 1989 19-Jun-2011 13:07:44 META-INF/manifest.xml - ---------- -------- ----------- -------- ----------------------- --8<---------------cut here---------------end--------------->8--- 3. Visit those xml files in nxml-mode 4. Make sure auto-validation is on. --8<---------------cut here---------------start------------->8--- (eval-after-load 'rng-nxml '(setq rng-nxml-auto-validate-flag t)) --8<---------------cut here---------------end--------------->8--- 5. Use C-c C-s C-w or M-x rng-what-schema and ensure that the right schemas are picked up for validation. --8<---------------cut here---------------start------------->8--- Using schema c:/Program Files/emacs-24.0.50/etc/schema/OpenDocument-v1.2-cs01-schema.Using schema c:/Program Files/emacs-24.0.50/etc/schema/OpenDocument-v1.2-cs01-manifest-schema.rnc --8<---------------cut here---------------end--------------->8--- 6. Use C-c C-n or M-x rng-next-error and ensure that things are OK. - Currently manifest.xml reports --8<---------------cut here---------------start------------->8--- Missing attribute "manifest:version" --8<---------------cut here---------------end--------------->8--- --=-=-= Content-Type: application/zip Content-Disposition: attachment; filename=test.odt Content-Transfer-Encoding: base64 Content-Description: test.odt UEsDBBQAAAgAAPZo0z5exjIMJwAAACcAAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz aXMub3BlbmRvY3VtZW50LnRleHRQSwMEFAAACAAA9mjTPgAAAAAAAAAAAAAAABoAAABDb25maWd1 cmF0aW9uczIvc3RhdHVzYmFyL1BLAwQUAAAICAD2aNM+AAAAAAIAAAAAAAAAJwAAAENvbmZpZ3Vy YXRpb25zMi9hY2NlbGVyYXRvci9jdXJyZW50LnhtbAMAUEsDBBQAAAgAAPZo0z4AAAAAAAAAAAAA AAAYAAAAQ29uZmlndXJhdGlvbnMyL2Zsb2F0ZXIvUEsDBBQAAAgAAPZo0z4AAAAAAAAAAAAAAAAa AAAAQ29uZmlndXJhdGlvbnMyL3BvcHVwbWVudS9QSwMEFAAACAAA9mjTPgAAAAAAAAAAAAAAABwA AABDb25maWd1cmF0aW9uczIvcHJvZ3Jlc3NiYXIvUEsDBBQAAAgAAPZo0z4AAAAAAAAAAAAAAAAY AAAAQ29uZmlndXJhdGlvbnMyL21lbnViYXIvUEsDBBQAAAgAAPZo0z4AAAAAAAAAAAAAAAAYAAAA Q29uZmlndXJhdGlvbnMyL3Rvb2xiYXIvUEsDBBQAAAgAAPZo0z4AAAAAAAAAAAAAAAAfAAAAQ29u ZmlndXJhdGlvbnMyL2ltYWdlcy9CaXRtYXBzL1BLAwQUAAAICAD2aNM+tVBVSzEDAADACwAACwAA AGNvbnRlbnQueG1srVZRa9swEH7vrxAe7M1Wk2yweknLoAwG7QprB3tVJTkRkyVPkuPk3+8k2Y7T xa0hg5BEuu9On747nbS82ZUSbbmxQqtVMssuE8QV1Uyo9Sr5+fQ1/ZTcXF9cLHVRCMpzpmldcuVS qpWDXwTuyubRukpqo3JNrLC5IiW3uaO5rrjqvPIhOg+LxRnr9nKyewAPvR3fuanOHnvkS56nrxzA Q29mSDPV2WNB1aF7oac676xMCw2qlxVx4gWLnRTq9yrZOFflGDdNkzWLTJs1nl1dXeFg7QnTHlfV RgYUo5hL7hezeJbNcIctuSNT+XnskJKqy2duJktDHPknq3a7nlwR2/WINHRDzOTaCODj9C7Y9PQu 2NC3JG4zkpNP+B6M4ev+7lALppy6lsceSUWNqCZvM6KH/lrrnqp3iAc00J1fXn7AcTxAN6/CGyMc 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 nN+t9F8wfKkfw9VHPiNYvXnpH72rOrXqHmFEph+XI2HoIrTAohXlh6cdVwJPPlr5q/ACuJcWAx3t +ODb2Lf/AVBLAwQUAAAIAAD2aNM+hia4oWcEAABnBAAACAAAAG1ldGEueG1sPD94bWwgdmVyc2lv bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KCjxvZmZpY2U6ZG9jdW1lbnQtbWV0YSB4bWxuczpv ZmZpY2U9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIg eG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOmRjPSJodHRw Oi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6bWV0YT0idXJuOm9hc2lzOm5hbWVz OnRjOm9wZW5kb2N1bWVudDp4bWxuczptZXRhOjEuMCIgeG1sbnM6b29vPSJodHRwOi8vb3Blbm9m ZmljZS5vcmcvMjAwNC9vZmZpY2UiIHhtbG5zOmdyZGRsPSJodHRwOi8vd3d3LnczLm9yZy8yMDAz L2cvZGF0YS12aWV3IyIgb2ZmaWNlOnZlcnNpb249IjEuMiIgZ3JkZGw6dHJhbnNmb3JtYXRpb249 Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL29mZmljZS8xLjIveHNsdC9vZGYycmRmLnhzbCI+ CiA8b2ZmaWNlOm1ldGE+CiAgPG1ldGE6aW5pdGlhbC1jcmVhdG9yPkphbWJ1bmF0aGFuIEs8L21l dGE6aW5pdGlhbC1jcmVhdG9yPgogIDxtZXRhOmNyZWF0aW9uLWRhdGU+MjAxMS0wNi0xOVQxODoz NToyNC44NDwvbWV0YTpjcmVhdGlvbi1kYXRlPgogIDxtZXRhOmRvY3VtZW50LXN0YXRpc3RpYyBt ZXRhOnRhYmxlLWNvdW50PSIwIiBtZXRhOmltYWdlLWNvdW50PSIwIiBtZXRhOm9iamVjdC1jb3Vu dD0iMCIgbWV0YTpwYWdlLWNvdW50PSIxIiBtZXRhOnBhcmFncmFwaC1jb3VudD0iMSIgbWV0YTp3 b3JkLWNvdW50PSIxMSIgbWV0YTpjaGFyYWN0ZXItY291bnQ9Ijc2Ii8+CiAgPGRjOmRhdGU+MjAx MS0wNi0xOVQxODozNzo0NS42NTwvZGM6ZGF0ZT4KICA8ZGM6Y3JlYXRvcj5KYW1idW5hdGhhbiBL PC9kYzpjcmVhdG9yPgogIDxtZXRhOmVkaXRpbmctZHVyYXRpb24+UFQwMEgwMk0yMVM8L21ldGE6 ZWRpdGluZy1kdXJhdGlvbj4KICA8bWV0YTplZGl0aW5nLWN5Y2xlcz4xPC9tZXRhOmVkaXRpbmct Y3ljbGVzPgogIDxtZXRhOmdlbmVyYXRvcj5PcGVuT2ZmaWNlLm9yZy8zLjIkV2luMzIgT3Blbk9m ZmljZS5vcmdfcHJvamVjdC8zMjBtMTgkQnVpbGQtOTUwMjwvbWV0YTpnZW5lcmF0b3I+PC9vZmZp Y2U6bWV0YT4KPC9vZmZpY2U6ZG9jdW1lbnQtbWV0YT5QSwMEFAAACAgA9mjTPrlyv1PfAwAA3AUA ABgAAABUaHVtYm5haWxzL3RodW1ibmFpbC5wbmft1N1PWgcABfBrm8Wt07GYpa7WwJp1NUsWsMZ6 gx8YrXYl69C2VmKtVZuCqO0VreIQhXU+EGdTm5TJXDuYNUo7h3RiuSICUZcxVNwcorEIlDA/ABU/ uCDMCzPZ67K/oE/n5Pd+Tls+5dPoI3FHAACIJp/PuXSQLwAgAnjz0EFryvrhHgC80UPOySr44vGG +TQUVwTo7Pwh6vO3wbmj70FE4DeLdWw8lhmHOxGtAY42MvlbEYzLZReN+a/OTmuOxZvbWGFVde6j n7wtX787PcpOp3OxMfqAtPK7Qzw7LFYD3MrgB7ORbaTz3qwnmJiWB2utObiT/0G4NUdg2+j8a2Aa fDSI7wmF6tNJTlZ6BklDCqve6hTyF+GzHcYZ0FC/5enctkSEWaJXzpDmgqSX0wwuimVht88UuAlW nXNbmRwG3X5rzo6pkKcyZz0rQYnEk4ncJVF+lRtWqhLfF0iaYk7RuJcnTdtV61gSMmnq1j5drbyj jKfMUPt9D/SDNs2SqcTNL3HaUuBSLA4nfKhnS28Nr/nm25sY5zD+vN4ofq+FNCqSFaKX+JZv6uQ/ VnADSTt9oqAjaXLEX6lVLkkbUS6Piu9ztPcbygspHDXeDu0M1lBrH0u+d96+3bBv14CjUFq1zNkA N1J1eacWwF3DlY9bLzqRTXf2DH7G1W8kYJYVyiA9JJObfkeU/sAfF8RYP/Ilwa8mp5VzAmKXSmCq +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 --=-=-= Content-Type: text/plain Jambunathan K. --=-=-=--