Commit ac97a16b authored by Mark A. Hershberger's avatar Mark A. Hershberger
Browse files

Fixups for nxml per Romain Francoise email.

parent 2a5bb249
2007-11-23 Mark A. Hershberger <>
* nxml-mode.texi: Move to ../misc.
2007-11-23 Thien-Thi Nguyen <>
* files.texi (Why Version Control?): Fix typo.
2007-11-23 Mark A. Hershberger <>
* (INFO_TARGETS, DVI_TARGETS): Add nxml-mode.
($(infodir)/nxml-mode): New rule.
* makefile.w32-in (INFO_TARGETS, DVI_TARGETS): Add nxml-mode.
($(infodir)/nxml-mode): New rule.
(clean): Add nxml-mode*.
* nxml-mode.texi: New file with nxml manual.
2007-11-18 Michael Albinus <>
* tramp.texi (Filename completion): Simplify explanation of
......@@ -60,6 +60,7 @@ INFO_TARGETS = \
$(infodir)/message \
$(infodir)/mh-e \
$(infodir)/newsticker \
$(infodir)/nxml-mode \
$(infodir)/org \
$(infodir)/pcl-cvs \
$(infodir)/pgg \
......@@ -100,6 +101,7 @@ DVI_TARGETS = \
message.dvi \
mh-e.dvi \
newsticker.dvi \
nxml-mode.dvi \
org.dvi \
pcl-cvs.dvi \
pgg.dvi \
......@@ -278,6 +280,12 @@ $(infodir)/newsticker: newsticker.texi
newsticker.dvi: newsticker.texi
$(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi
nxml-mode : $(infodir)/nxml-mode
$(infodir)/nxml-mode: nxml-mode.texi
cd $(srcdir); $(MAKEINFO) nxml-mode.texi
nxml-mode.dvi: nxml-mode.texi
$(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi
org : $(infodir)/org
$(infodir)/org: org.texi
cd $(srcdir); $(MAKEINFO) org.texi
......@@ -43,7 +43,7 @@ INFO_TARGETS = $(infodir)/ccmode \
$(infodir)/url $(infodir)/speedbar $(infodir)/tramp \
$(infodir)/ses $(infodir)/smtpmail $(infodir)/flymake \
$(infodir)/newsticker $(infodir)/rcirc $(infodir)/erc \
$(infodir)/remember $(infodir)/nxml-mode
DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dired-x.dvi \
ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \
gnus.dvi message.dvi sieve.dvi pgg.dvi mh-e.dvi \
......@@ -51,7 +51,7 @@ DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dired-x.dvi \
ada-mode.dvi autotype.dvi idlwave.dvi eudc.dvi ebrowse.dvi \
pcl-cvs.dvi woman.dvi eshell.dvi org.dvi url.dvi \
speedbar.dvi tramp.dvi ses.dvi smtpmail.dvi flymake.dvi \
newsticker.dvi rcirc.dvi erc.dvi remember.dvi
newsticker.dvi rcirc.dvi erc.dvi remember.dvi nxml-mode.dvi
INFOSOURCES = info.texi
# The following rule does not work with all versions of `make'.
......@@ -271,6 +271,11 @@ $(infodir)/newsticker: newsticker.texi
newsticker.dvi: newsticker.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi
$(infodir)/nxml-mode: nxml-mode.texi
$(MAKEINFO) nxml-mode.texi
nxml-mod.dvi: nxml-mode.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi
$(infodir)/rcirc: rcirc.texi
$(MAKEINFO) rcirc.texi
rcirc.dvi: rcirc.texi
......@@ -304,7 +309,7 @@ clean: mostlyclean
$(infodir)/flymake* $(infodir)/newsticker* \
$(infodir)/sieve* $(infodir)/pgg* \
$(infodir)/erc* $(infodir)/rcirc* \
$(infodir)/remember* $(infodir)/nxml-mode*
distclean: clean
\input texinfo @c -*- texinfo -*-
@c %**start of header
@setfilename ../../info/nxml-mode
@settitle nXML Mode
@c %**end of header
2007-11-23 Mark A. Hershberger <>
* NXML-NEWS: New File.
* schema: Initial merge of nxml.
2007-11-22 Francesco Potort,Al(B <>
nxml-mode.xml nxml-mode.rnc nxml-mode.texi dir \
test.valid.xml test.invalid.xml
SRC=nxml-rap.el nxml-outln.el nxml-mode.el nxml-parse.el nxml-enc.el \
nxml-uchnm.el nxml-glyph.el nxml-maint.el nxml-util.el nxml-ns.el \
rng-dt.el rng-valid.el rng-pttrn.el rng-xsd.el rng-cmpct.el \
rng-match.el rng-nxml.el rng-util.el rng-loc.el rng-uri.el \
rng-parse.el rng-maint.el xsd-regexp.el xmltok.el
ELC=nxml-rap.elc nxml-outln.elc nxml-mode.elc nxml-parse.elc nxml-enc.elc \
nxml-uchnm.elc nxml-glyph.elc nxml-maint.elc nxml-util.elc nxml-ns.elc \
rng-dt.elc rng-valid.elc rng-pttrn.elc rng-xsd.elc rng-cmpct.elc \
rng-match.elc rng-nxml.elc rng-util.elc rng-loc.elc rng-uri.elc \
rng-parse.elc rng-maint.elc xsd-regexp.elc xmltok.elc
FILESTOCLEAN=stamp-byte-compile $(ELC) VERSION TAGS \
nxml-mode.texi dir
stamp-byte-compile: $(SRC)
-rm -f $(ELC)
$(EMACS) -batch -l rng-auto.el -f rng-byte-compile-load
touch $(@)
all: stamp-byte-compile
rm -f $@
info: nxml-mode.texi
nxml-mode.texi: nxml-mode.xml
$(EMACS) -batch -l rng-auto.el -f rng-format-manual
VERSION: stamp-byte-compile rng-auto.el
$(EMACS) -batch -l rng-auto.el -f rng-write-version
dist: stamp-byte-compile $(EXTRA)
@version=`cat VERSION`; \
set -e; \
echo Making $(PACKAGE)-$$version.tar.gz; \
rm -fr $(PACKAGE)-$$version; \
mkdir $(PACKAGE)-$$version; \
cd $(PACKAGE)-$$version; \
for f in $(EXTRA) $(SRC) $(ELC); do \
ln -s ../$$f .; \
done; \
mkdir schema; \
cd schema; \
for f in ../../schema/*.rnc ../../schema/*.xml; do \
ln -s $$f .; \
done; \
cd ..; \
mkdir char-name; \
mkdir char-name/unicode; \
cd char-name/unicode; \
for f in ../../../char-name/unicode/*-*.el; do \
ln -s $$f .; \
done; \
cd ../../..; \
tar cfhz $(PACKAGE)-$$version.tar.gz $(PACKAGE)-$$version; \
rm -fr $(PACKAGE)-$$version
.PHONY: all clean info
This is a new major mode for GNU Emacs for editing XML documents. It
supports editing well-formed XML documents and also provides
schema-sensitive editing of XML documents using RELAX NG Compact
To use this, you need GNU Emacs version 21.x, preferably 21.3. GNU
Emacs version 20 will not work properly, nor will XEmacs.
To get started, do
M-x load-file <RET> rng-auto.el <RET>
This defines the necessary autoloads. Now, visit a file containing
an XML document, and do
M-x nxml-mode
Now do
C-h m
for information on how to use nxml-mode.
The beginnings of a manual are in You can read this
C-u M-x info RET RET
It's also installed as an entry at the end of the top-level info
directory. So you can read it with C-h i as usual.
You can use test.valid.xml and test.invalid.xml as examples of valid
and invalid XML documents.
To get things automatically loaded each time you start Emacs, add
(load "~/nxml-mode-200YMMDD/rng-auto.el")
to your .emacs, where ~/nxml-mode-200YMMDD is the directory containing
the .elc files. Note that rng-auto.el does not load all of the
nxml-mode code; it merely sets things up so that all the features of
nxml-mode will be autoloaded properly. You should not try to autoload
rng-auto.el itself.
To use nxml-mode automatically for files with an extension of xml,
xsl, rng or xhtml, add
(setq auto-mode-alist
(cons '("\\.\\(xml\\|xsl\\|rng\\|xhtml\\)\\'" . nxml-mode)
to your .emacs.
If you edit XML using iso-8859-N encodings other than iso-8859-1 and
you are running Emacs 21.3 or later, then I recommend enabling
unify-8859-on-decoding-mode, by adding
to you .emacs.
To get validation and schema-sensitive editing, you need a RELAX NG
Compact Syntax (RNC) schema for you document. The schema directory
includes some schemas for popular document types.
For more on RELAX NG, see
For a tutorial on RELAX NG Compact Syntax, see
For automatically creating RNC schemas, I recommend my Trang program:
You can use this to
- infer an RNC schema from an instance document;
- convert a DTD to an RNC schema;
- convert a RELAX NG XML syntax schema to an RNC schema.
To convert a RELAX NG XML syntax (.rng) schema to a RNC schema, you
can also use the XSLT stylesheet from
To convert a W3C XML Schema to an RNC schema, you need first to
convert it to RELAX NG XML syntax using Sun's RELAX NG converter tool
rngconv (built on top of MSV). See
The file NEWS describes recent changes.
Please use the list
for bug reports, discussion. I will announce all new versions there.
James Clark
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment