Newer Older
Paul Eggert's avatar
Paul Eggert committed
Copyright (C) 2007-2019 Free Software Foundation, Inc.
2 3 4 5 6 7
See the end of the file for license conditions.

For more recent changes, see the main Emacs NEWS file.

Mark A. Hershberger's avatar
Mark A. Hershberger committed
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Support for outlining has been added. See the manual for more details.

C-u C-c C-n goes to the first error.


C-c RET splits the current element as in PSGML.


Indentation has been rewritten.  Indentation of attribute names and
values should work better.  The default value of
`nxml-attribute-indent' has been changed to 4.

Syntax highlighting with a dark background should now work.


The attribute pathSuffix on the uri element in schema locating files
has been replaced by a more general pattern attribute. The
transformURI element now has required fromPattern and toPattern

The schema related bindings have been changed to use C-c C-s as a prefix
as follows:

  C-c C-s => C-c C-s C-f (f for file)
  C-c C-a => C-c C-s C-a
  C-c C-t => C-c C-s C-t
  C-c C-l => C-c C-s C-l
  C-c C-w => C-c C-s C-w

There's now an XML menu on the menu-bar.


C-c C-d "dynamically" chooses a tag to put around the word before
point, rather like M-/.

The mechanism for locating the schema has changed completely.  The new
mechanism is described in the manual.  Any existing customizations of
`rng-auto-element-alist' or `rng-auto-file-name-alist' will no longer
be effective.

C-c C-a is now bound to rng-auto-set-schema.


Unicode names can be used to insert characters with the new command
C-c C-u.  Normally, this inserts a character reference.  With a prefix
arg (i.e. C-u C-c C-u), it inserts the character directly.  You can
customize `nxml-enabled-unicode-blocks' to control what Unicode blocks
are used for completing names.

Extra information is displayed for character references.  The Unicode
name is displayed in a tooltip. A glyph for the referenced character
is displayed in a distinguished face following the character
reference; this can be disabled by customizing
`nxml-char-ref-display-glyph-flag'.  The command
`nxml-toggle-char-ref-extra-display' dynamically toggles the display
of extra information for character references for a particular buffer.
This can be used if the display of extra information is causing
performance problems. nXML mode tries to figure out which glyphs can
be displayed. Unfortunately Emacs doesn't provide the primitives
necessary to do this properly, so nXML mode has to guess and will
sometimes guess wrong.  The hook `nxml-glyph-set-hook' can be used to
change nXML mode's guess.

New command C-c C-w says what schema is being used.

C-c C-s now turns on validation if it is not already on.


M-q has been implemented so that it works reasonably with XML.  Other
paragraph-related commands (M-{, M-}, M-h) have also been implemented.

New command M-x rng-auto-set-schema to set the schema based on the
buffer's current contents and file-name. This is called automatically
when rng-validate-mode is first enabled.

There's now a C-M-d to go with C-M-u.  C-M-d moves forward down into
the content of an element.  C-M-n and C-M-p move to the next or
previous element.

By default, the sexp commands (C-M-f, C-M-b, C-M-k, C-M-SPC) operate
on tags rather than elements.  To restore the old behavior,
Mark A. Hershberger's avatar
Mark A. Hershberger committed
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
customize nxml-sexp-element-flag.

The file TUTORIAL has been replaced by nxml-mode.info; this is in info
format and can be read using Emacs.  The source is maintained in a
simple, ad-hoc XML format.


XML encodings should now work properly.  When saving a buffer,
nxml-mode arranges to use the encoding declared in the XML
declaration.  If there is no encoding declared, then nxml-mode will
use utf-8 or utf-16 according to the user options
`nxml-prefer-utf-16-to-utf-8-flag' and
`nxml-prefer-utf-16-little-to-big-endian-flag'. If the chosen encoding
cannot encode all the characters in the buffer, nxml-mode will
complain and give the user an opportunity to use an encoding that can.

A new command C-c C-x inserts an XML declaration.

The option `nxml-auto-insert-xml-declaration-flag' automatically
inserts an XML declaration in new files.

The `nxml-default-buffer-file-coding-system' option allows a different
default buffer-file-coding-system for nXML mode buffers.  This affects
what XML declaration is inserted.

Encoding names in XML declarations are now validated by

RDF/XML schema was updated to version in 05 September 2003 WD.


The tutorial has a new section on inserting end-tags.

By default </ no longer automatically inserts the rest of the end-tag.
You can do

  M-x customize-variable RET nxml-slash-auto-complete-flag RET

and then follow the instructions displayed in the buffer to get the
old behavior.
Mark A. Hershberger's avatar
Mark A. Hershberger committed
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206

Completion after </ will complete the rest of the end-tag. Completion
after < will include the end-tag in the possibilities if allowed by
the schema.

You can use C-c C-i instead of > to close the start-tag of an
inline-level element.  After inserting the >, it will insert the
end-tag and leave point before the end-tag. The `i' is supposed to be
mnemonic for `inline'. C-c C-b is similar, but for block elements: the
start-tag, point and the end-tag will all be on separate lines.

The binding for inserting an end-tag has changed from C-c / to C-c C-f
to comply with Emacs guidelines about what keys major modes should
bind.  The `f' is supposed to be mnemonic for `finish'.

Completion always puts point after all the characters it inserts. It
doesn't insert a `>' after completing a start-tag name.

Completion no longer completes CDATA section and comment delimiters.

The nxml-start-auto-coding command enables auto-detection of a file's
encoding as specified in the XML Recommendation for files that use
nxml-mode; rng-auto.el calls this.


Validation messages applicable to point are displayed automatically.

Completion can deal with prefixes that haven't yet been declared.

rng-preferred-prefix-alist variable added.

Namespace URIs can be completed.

xmlns and xmlns:* attributes can be completed.

CDATA section and comment delimiters can be completed.

Each kind of completion has its own history.

Completion function moved to nxml-mode; uses a hook to allow
schema-sensitive completion.  Completion function bound to C-return.
Also bound to M-TAB as before, unless
nxml-bind-meta-tab-to-complete-flag is nil.  When there is a window
system, nxml-bind-meta-tab-to-complete-flag is nil by default, This
avoid problems with M-TAB, which is not passed through by several
window systems/managers.

TUTORIAL file added.

NEWS file added.

Bug fixes.


Initial release.
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222

This file is part of GNU Emacs.

GNU Emacs 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 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.