aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Thorsen <[email protected]>2013-01-15 12:06:28 +0100
committerLars Thorsen <[email protected]>2013-01-21 14:20:23 +0100
commit29fcde84ea712308452a990b5baa2fd688f0c860 (patch)
treeb8b9de38072f30773dc828843e93cc3c506f61fe
parent14e9c6fbdafc870016a3f586168d689859701274 (diff)
downloadotp-29fcde84ea712308452a990b5baa2fd688f0c860.tar.gz
otp-29fcde84ea712308452a990b5baa2fd688f0c860.tar.bz2
otp-29fcde84ea712308452a990b5baa2fd688f0c860.zip
[erl_docgen] Add xmllint target for the documentation and fix some DTD errors
-rw-r--r--erts/configure.in6
-rw-r--r--lib/erl_docgen/priv/dtd/common.refs.dtd5
-rw-r--r--lib/erl_docgen/priv/dtd/erlref.dtd3
-rw-r--r--make/otp.mk.in1
-rw-r--r--make/otp_release_targets.mk3
5 files changed, 17 insertions, 1 deletions
diff --git a/erts/configure.in b/erts/configure.in
index 30bc1ef000..a0c5cab181 100644
--- a/erts/configure.in
+++ b/erts/configure.in
@@ -827,6 +827,12 @@ if test -z "$FOP"; then
AC_MSG_WARN([No 'fop' command found: going to generate placeholder PDF files])
fi
+AC_CHECK_PROGS(XMLLINT, xmllint)
+if test -z "$XMLLINT"; then
+ echo "xmllint" >> doc/CONF_INFO
+ AC_MSG_WARN([No 'xmllint' command found: can't run the xmllint target for the documentation])
+fi
+
dnl
dnl We can live with Solaris /usr/ucb/install
dnl
diff --git a/lib/erl_docgen/priv/dtd/common.refs.dtd b/lib/erl_docgen/priv/dtd/common.refs.dtd
index 73a3501071..93592607df 100644
--- a/lib/erl_docgen/priv/dtd/common.refs.dtd
+++ b/lib/erl_docgen/priv/dtd/common.refs.dtd
@@ -29,7 +29,9 @@
<!ELEMENT func (name+,type_desc*,fsummary,type?,desc?) >
<!-- ELEMENT name is defined in each ref dtd -->
<!ELEMENT fsummary (#PCDATA|c|em)* >
-<!ELEMENT type (v,d?)+ >
+<!ELEMENT type (v,d?)* >
+<!ATTLIST type variable CDATA #IMPLIED
+ name_i CDATA #IMPLIED>
<!ELEMENT v (#PCDATA) >
<!ELEMENT d (#PCDATA|c|em)* >
<!ELEMENT desc (%block;|quote|br|marker|warning|note|anno)* >
@@ -41,3 +43,4 @@
<!ELEMENT datatypes (datatype)+ >
<!ELEMENT datatype (name+,desc?) >
<!ELEMENT type_desc (#PCDATA) >
+<!ATTLIST type_desc variable CDATA #REQUIRED>
diff --git a/lib/erl_docgen/priv/dtd/erlref.dtd b/lib/erl_docgen/priv/dtd/erlref.dtd
index 9905086ff4..0cc5cfa06d 100644
--- a/lib/erl_docgen/priv/dtd/erlref.dtd
+++ b/lib/erl_docgen/priv/dtd/erlref.dtd
@@ -29,3 +29,6 @@
<!-- `name' is used in common.refs.dtd and must therefore
be defined in each *ref. dtd -->
<!ELEMENT name (#PCDATA) >
+<!ATTLIST name name CDATA #IMPLIED
+ arity CDATA #IMPLIED
+ clause_i CDATA #IMPLIED>
diff --git a/make/otp.mk.in b/make/otp.mk.in
index 0e58a27016..fca9cf3cff 100644
--- a/make/otp.mk.in
+++ b/make/otp.mk.in
@@ -255,6 +255,7 @@ DEFAULT_GIF_FILES = $(HTMLDIR)/min_head.gif
#
XSLTPROC = @XSLTPROC@
FOP = @FOP@
+XMLLINT = @XMLLINT@
DOCGEN=$(ERL_TOP)/lib/erl_docgen
FOP_CONFIG = $(DOCGEN)/priv/fop.xconf
diff --git a/make/otp_release_targets.mk b/make/otp_release_targets.mk
index 0be0a2de56..3ad529685b 100644
--- a/make/otp_release_targets.mk
+++ b/make/otp_release_targets.mk
@@ -106,6 +106,9 @@ $(HTMLDIR)/$(APPLICATION).eix: $(XML_FILES) $(SPECS_FILES)
docs: $(HTMLDIR)/$(APPLICATION).eix
+xmllint: $(XML_FILES)
+ $(XMLLINT) --noout --valid --nodefdtd --loaddtd --path $(DOCGEN)/priv/dtd:$(DOCGEN)/dtd_html_entities $(XML_FILES)
+
# ----------------------------------------------------
# Local documentation target for testing
# ----------------------------------------------------