Date: Thu, 14 Mar 2013 10:25:23 +0000 (UTC) From: Gabor Kovesdan <gabor@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-projects@freebsd.org Subject: svn commit: r41205 - in projects/xml-tools/share: mk xml Message-ID: <201303141025.r2EAPNuY022354@svn.freebsd.org>
index | next in thread | raw e-mail
Author: gabor Date: Thu Mar 14 10:25:23 2013 New Revision: 41205 URL: http://svnweb.freebsd.org/changeset/doc/41205 Log: - Add support for Schematron validation - Add a simple Schematron file that validates file references - Silence the output of validation so that the result be more readable Added: projects/xml-tools/share/xml/freebsd.sch (contents, props changed) Modified: projects/xml-tools/share/mk/doc.docbook.mk Modified: projects/xml-tools/share/mk/doc.docbook.mk ============================================================================== --- projects/xml-tools/share/mk/doc.docbook.mk Thu Mar 14 09:19:23 2013 (r41204) +++ projects/xml-tools/share/mk/doc.docbook.mk Thu Mar 14 10:25:23 2013 (r41205) @@ -85,8 +85,12 @@ XSLXHTMLCHUNK?= ${DOC_PREFIX}/${LANGCODE XSLEPUB?= ${DOC_PREFIX}/${LANGCODE}/share/xsl/freebsd-epub.xsl XSLFO?= ${DOC_PREFIX}/${LANGCODE}/share/xsl/freebsd-fo.xsl +XSLSCH?= /usr/local/share/xsl/iso-schematron/xslt1/iso_schematron_skeleton_for_xslt1.xsl + IMAGES_LIB?= +SCHEMATRONS?= ${DOC_PREFIX}/share/xml/freebsd.sch + .if exists(${PREFIX}/bin/jade) && !defined(OPENJADE) JADECATALOG?= ${PREFIX}/share/sgml/jade/catalog .else @@ -332,6 +336,15 @@ NO_RTF= yes .endif .endfor +.if defined(SCHEMATRONS) +.for sch in ${SCHEMATRONS} +schxslts+= ${sch}.xsl + +${sch}.xsl: ${sch} + ${XSLTPROC} ${XSLSCH} ${.ALLSRC} > ${.TARGET} +.endfor +.endif + # Parsed XML ------------------------------------------------------- ${DOC}.parsed.xml: ${SRCS} @@ -341,6 +354,7 @@ ${DOC}.parsed.xml: ${SRCS} .else ${ECHO_CMD} '<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN" "../../../share/xml/freebsd45.dtd">' >> ${.TARGET} .endif + @${ECHO} "==> Basic validation" ${XMLLINT} --nonet --noent --valid --xinclude --dropdtd ${MASTERDOC} | \ ${GREP} -v '^<?xml version=.*?>' >> ${.TARGET} @@ -547,9 +561,29 @@ ${DOC}.${_curformat}: # having to convert it to any other formats # -lint validate: ${SRCS} - ${XMLLINT} --nonet --noout --noent --valid ${MASTERDOC} - @${RM} -rf ${CLEANFILES} ${CLEANDIRS} +# +# XXX: There is duplicated code below. In general, we want to see what +# is actually run but when validation is executed, it is better to +# silence the command invocation so that only error messages appear. +# + +lint validate: ${SRCS} ${schxslts} + @${GREP} '^<?xml version=.*?>' ${DOC}.xml > ${DOC}.parsed.xml +.if ${DOC} == "book" + @${ECHO_CMD} '<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN" "../../../share/xml/freebsd45.dtd">' >> ${DOC}.parsed.xml +.else + @${ECHO_CMD} '<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN" "../../../share/xml/freebsd45.dtd">' >> ${DOC}.parsed.xml +.endif + @${ECHO} "==> Basic validation" + @${XMLLINT} --nonet --noent --valid --xinclude --dropdtd ${MASTERDOC} | \ + ${GREP} -v '^<?xml version=.*?>' >>${DOC}.parsed.xml +.if defined(schxslts) + @${ECHO} "==> Validating with Schematron constraints" +.for sch in ${schxslts} + @${XSLTPROC} ${sch} ${DOC}.parsed.xml +.endfor +.endif + @${RM} -rf ${CLEANFILES} ${CLEANDIRS} ${DOC}.parsed.xml # ------------------------------------------------------------------------ # Added: projects/xml-tools/share/xml/freebsd.sch ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/xml-tools/share/xml/freebsd.sch Thu Mar 14 10:25:23 2013 (r41205) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="iso-8859-1"?> + +<!-- $FreeBSD$ --> + +<schema xmlns="http://purl.oclc.org/dsdl/schematron"> + <pattern name="Check file reference validity"> + <rule context="//*/@fileref"> + <assert test="contains(., '.')">File reference does not have an extension.</assert> + </rule> + </pattern> +</schema>home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201303141025.r2EAPNuY022354>
