Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
XMLWF(1)							      XMLWF(1)

       xmlwf - Determines if an	XML document is	well-formed

       xmlwf [-s] [-n] [-p] [-x] [-e encoding] [-w] [-d	output-dir] [-c] [-m]
	     [-r] [-t] [-N] [-v] [file ...]

       xmlwf uses the Expat library to determine if an XML document  is	 well-
       formed. It is non-validating.

       If you do not specify any files on the command-line, and	you have a re-
       cent version of xmlwf, the input	file will be read from standard	input.

       A well-formed document must adhere to the following rules:

       o The file begins with an XML declaration.  For	instance,  <?xml  ver-
	 sion="1.0"  standalone="yes"?>.  NOTE:	xmlwf does not currently check
	 for a valid XML declaration.

       o Every start tag is either empty (<tag/>) or has a  corresponding  end

       o There is exactly one root element. This element must contain all oth-
	 er elements in	the document. Only comments, white space, and process-
	 ing instructions may come after the close of the root element.

       o All elements nest properly.

       o All  attribute	 values	 are enclosed in quotes	(either	single or dou-

       If the document has a DTD, and it strictly complies with	that DTD, then
       the document is also considered valid.  xmlwf is	a non-validating pars-
       er -- it	does not check the DTD.	However, it does support external  en-
       tities (see the -x option).

       When  an	 option	includes an argument, you may specify the argument ei-
       ther separately ("-d output") or	concatenated with the option  ("-dout-
       put"). xmlwf supports both.

       -c     If the input file	is well-formed and xmlwf doesn't encounter any
	      errors, the input	file is	simply copied to the output  directory
	      unchanged.   This	 implies  no namespaces	(turns off -n) and re-
	      quires -d	to specify an output directory.

       -d output-dir
	      Specifies	a directory to contain transformed representations  of
	      the input	files.	By default, -d outputs a canonical representa-
	      tion (described below).  You can select different	output formats
	      using -c,	-m and -N.

	      The output filenames will	be exactly the same as the input file-
	      names or "STDIN" if the input is	coming	from  standard	input.
	      Therefore,  you must be careful that the output file does	not go
	      into the same directory as the input file. Otherwise, xmlwf will
	      delete  the input	file before it generates the output file (just
	      like running cat < file >	file in	most shells).

	      Two structurally equivalent XML documents	have  a	 byte-for-byte
	      identical	 canonical  XML	 representation.   Note	that ignorable
	      white space is considered	significant and	is treated equivalent-
	      ly   to	data.	 More	on  canonical  XML  can	 be  found  at .

       -e encoding
	      Specifies	the character encoding for  the	 document,  overriding
	      any  document encoding declaration. xmlwf	supports four built-in
	      encodings: US-ASCII, UTF-8, UTF-16, and  ISO-8859-1.   Also  see
	      the -w option.

       -m     Outputs  some strange sort of XML	file that completely describes
	      the input	file, including	character positions.  Requires	-d  to
	      specify an output	file.

       -n     Turns on namespace processing. (describe namespaces) -c disables

       -N     Adds a doctype and notation declarations to canonical  XML  out-
	      put.   This  matches  the	 example output	used by	the formal XML
	      test cases.  Requires -d to specify an output file.

       -p     Tells xmlwf to process external DTDs and parameter entities.

	      Normally xmlwf never parses parameter entities. -p tells	it  to
	      always parse them.  -p implies -x.

       -r     Normally xmlwf memory-maps the XML file before parsing; this can
	      result in	faster parsing on many platforms.  -r turns off	 memo-
	      ry-mapping  and  uses  normal file IO calls instead.  Of course,
	      memory-mapping is	automatically turned  off  when	 reading  from
	      standard input.

	      Use  of  memory-mapping  can cause some platforms	to report sub-
	      stantially higher	memory usage for xmlwf,	but this appears to be
	      a	 matter	 of the	operating system reporting memory in a strange
	      way; there is not	a leak in xmlwf.

       -s     Prints an	error if the document is not standalone.   A  document
	      is  standalone if	it has no external subset and no references to
	      parameter	entities.

       -t     Turns on timings.	This tells Expat to parse the entire file, but
	      not  perform  any	processing.  This gives	a fairly accurate idea
	      of the raw speed of Expat	itself without	client	overhead.   -t
	      turns off	most of	the output options (-d,	-m, -c,	...).

       -v     Prints  the  version  of the Expat library being used, including
	      some information on the compile-time configuration  of  the  li-
	      brary, and then exits.

       -w     Enables  support	for  Windows code pages.  Normally, xmlwf will
	      throw an error if	it runs	across an  encoding  that  it  is  not
	      equipped to handle itself. With -w, xmlwf	will try to use	a Win-
	      dows code	page. See also -e.

       -x     Turns on parsing external	entities.

	      Non-validating parsers are not required to resolve external  en-
	      tities,  or  even	 expand	entities at all.  Expat	always expands
	      internal entities	(?), but external entity parsing must  be  en-
	      abled explicitly.

	      External	entities  are  simply  entities	that obtain their data
	      from outside the XML file	currently being	parsed.

	      This is an example of an internal	entity:

	      <!ENTITY vers '1.0.2'>

	      And here are some	examples of external entities:

	      <!ENTITY header SYSTEM "header-&vers;.xml">  (parsed)
	      <!ENTITY logo SYSTEM "logo.png" PNG>	   (unparsed)

       --     (Two hyphens.)  Terminates the list of  options.	This  is  only
	      needed if	a filename starts with a hyphen. For example:

	      xmlwf -- -myfile.xml

	      will run xmlwf on	the file -myfile.xml.

       Older versions of xmlwf do not support reading from standard input.

       If  an  input  file  is not well-formed,	xmlwf prints a single line de-
       scribing	the problem to standard	output.	If a file is well formed, xml-
       wf outputs nothing.  Note that the result code is not set.

       xmlwf  returns a	0 - noerr result, even if the file is not well-formed.
       There is	no good	way for	a program to use xmlwf to quickly check	a file
       -- it must parse	xmlwf's	standard output.

       The errors should go to standard	error, not standard output.

       There  should  be a way to get -d to send its output to standard	output
       rather than forcing the user to send it to a file.

       I have no idea why anyone would want to use the -d, -c, and -m options.
       If  someone could explain it to me, I'd like to add this	information to
       this manpage.

       Here are	some XML validators on the web:

       The Expat home page:
       The W3 XML specification:

       This manual page	was written by Scott Bronson <> for
       the  Debian GNU/Linux system (but may be	used by	others). Permission is
       granted to copy,	distribute and/or modify this document under the terms
       of the GNU Free Documentation License, Version 1.1.

				March 11, 2016			      XMLWF(1)


Want to link to this manual page? Use this URL:

home | help