emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to lisp/nxml/rng-dt.el


From: Mark A. Hershberger
Subject: [Emacs-diffs] Changes to lisp/nxml/rng-dt.el
Date: Fri, 23 Nov 2007 06:58:19 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Mark A. Hershberger <hexmode>   07/11/23 06:58:00

Index: lisp/nxml/rng-dt.el
===================================================================
RCS file: lisp/nxml/rng-dt.el
diff -N lisp/nxml/rng-dt.el
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lisp/nxml/rng-dt.el 23 Nov 2007 06:57:51 -0000      1.1
@@ -0,0 +1,64 @@
+;;; rng-dt.el --- datatype library interface for RELAX NG
+
+;; Copyright (C) 2003 Free Software Foundation, Inc.
+
+;; Author: James Clark
+;; Keywords: XML, RelaxNG
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2 of
+;; the License, or (at your option) any later version.
+
+;; This program is distributed in the hope that it will be
+;; useful, but WITHOUT ANY WARRANTY; without even the implied
+;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+;; PURPOSE.  See the GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public
+;; License along with this program; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+;; MA 02111-1307 USA
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'rng-util)
+
+(defvar rng-dt-error-reporter nil)
+
+(defun rng-dt-error (string &rest objs)
+  (if rng-dt-error-reporter
+      (apply rng-dt-error-reporter (cons string objs))
+    nil))
+
+(defvar rng-dt-namespace-context-getter nil
+  "A list used by datatype libraries to expand names.  The car of the
+list is a symbol which is the name of a function.  This function is
+applied to the cdr of the list.  The function must return a list whose
+car is the default namespace and whose cdr is an alist of (PREFIX
+. NAMESPACE) pairs, where PREFIX is a string and NAMESPACE is a
+symbol.  This must be dynamically bound before calling a datatype
+library.")
+
+(defsubst rng-dt-make-value (dt str)
+  (apply (car dt) (cons str (cdr dt))))
+
+(defun rng-dt-builtin-compile (name params)
+  (cond ((eq name 'string)
+        (if (null params)
+            '(t identity)
+          (rng-dt-error "The string datatype does not take any parameters")))
+       ((eq name 'token)
+        (if (null params)
+            '(t rng-collapse-space)
+          (rng-dt-error "The token datatype does not take any parameters")))
+       (t
+        (rng-dt-error "There is no built-in datatype %s" name))))
+
+(put (rng-make-datatypes-uri "") 'rng-dt-compile 'rng-dt-builtin-compile)
+
+(provide 'rng-dt)
+
+;;; rng-dt.el ends here




reply via email to

[Prev in Thread] Current Thread [Next in Thread]