      (1 font-lock-keyword-face)
      (2 font-lock-interface-def-face))
 
-    ("<\\(\\sw+\\)[^>]*>"
+    ("\\(<\\sw+\\)\\(\\s-\\|\\sw\\|=\\|\"[^\"]*\"\\|{[^}]*}\\)*/?\\(>\\)"
+     (1 font-lock-tag-face)
+     (3 font-lock-tag-face))
+    ("\\(</\\sw+>\\)"
      (1 font-lock-tag-face))
-    ("</\\(\\sw+\\)[^>]*>"
-     (1 font-lock-tag-face))
+    ("\\([^<>{}]+\\)"
+     (1 (if (save-excursion (inXml 0))
+            font-lock-string-face
+          nil)))
     
     (,urweb-keywords-regexp . font-lock-keyword-face)
     (,urweb-sql-keywords-regexp . font-lock-sql-face)
-;   (,urweb-lident-regexp . font-lock-variable-face)
     (,urweb-cident-regexp . font-lock-cvariable-face))
   "Regexps matching standard Ur/Web keywords.")
 

	(urweb-skip-siblings))
      fullname)))

(provide 'urweb-mode)

;;; urweb-mode.el ends here

  :group 'font-lock-highlighting-faces)
(defvar font-lock-tag-face 'font-lock-tag-face
  "Face name to use for XML tags.")

(defface font-lock-attr-face
  '((t (:bold t)))
  "Font Lock mode face used to highlight XML attributes."
  :group 'font-lock-highlighting-faces)
(defvar font-lock-attr-face 'font-lock-attr-face
  "Face name to use for XML attributes.")

;;
;; Code to handle nested comments and unusual string escape sequences
