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

FreeBSD Manual Pages

  
 
  

home | help
LaTeXML::Common::ModelUser Contributed Perl DocumentaLaTeXML::Common::Model(3)

NAME
       "LaTeXML::Common::Model"	- represents the Document Model

DESCRIPTION
       "LaTeXML::Common::Model"	encapsulates information about the document
       model to	be used	in converting a	digested document into XML by the
       LaTeXML::Core::Document.	 This information is based on the document
       schema (eg, DTD,	RelaxNG), but is also modified by package modules;
       thus the	model may not be complete until	digestion is completed.

       The kinds of information	that is	relevant is not	only the content model
       (what each element can contain contain),	but also SGML-like information
       such as whether an element can be implicitly opened or closed, if
       needed to insert	a new element into the document.

       Currently, only an approximation	to the schema is understood and	used.
       For example, we only record that	certain	elements can appear within
       another;	we don't preserve any information about	required order or
       number of instances.

       It extends LaTeXML::Common::Object.

   Model Creation
       "$model = LaTeXML::Common::Model->new(%options);"
	   Creates a new model.	 The only useful option	is "permissive=>1"
	   which ignores any DTD and allows the	document to be built without
	   following any particular content model.

   Document Type
       "$model->setDocType($rootname,$publicid,$systemid,%namespaces);"
	   Declares the	expected rootelement, the public and system ID's of
	   the document	type to	be used	in the final document.	The hash
	   %namespaces specifies the namespace prefixes	that are expected to
	   be found in the DTD,	along with the associated namespace URI.
	   These prefixes may be different from	the prefixes used in
	   implementation code (eg. in ltxml files; see	RegisterNamespace).
	   The generated document will use the namespaces and prefixes defined
	   here.

   Namespaces
       Note that there are two namespace mappings between namespace URIs and
       prefixes	that are relevant to LaTeXML.  The `code' mapping is the one
       used in code implementing packages, and in particular, constructors
       defined within those packages.  The prefix "ltx"	is used	consistently
       to refer	to LaTeXML's own namespace ("http://dlmf.nist.gov/LaTeXML)".

       The other mapping, the `document' mapping, is used in the created
       document; this may be different from the	`code' mapping in order	to
       accommodate DTDs, for example, or for use by other applications that
       expect a	rigid namespace	mapping.

       "$model->registerNamespace($prefix,$namespace_url);"
	   Register $prefix to stand for the namespace $namespace_url.	This
	   prefix can then be used to create nodes in constructors and
	   Document methods.  It will also be recognized in XPath expressions.

       "$model->getNamespacePrefix($namespace,$forattribute,$probe);"
	   Return the prefix to	use for	the given $namespace.  If
	   $forattribute is nonzero, then it looks up the prefix as
	   appropriate for attributes.	If $probe is nonzero, it only probes
	   for the prefix, without creating a missing entry.

       "$model->getNamespace($prefix,$probe);"
	   Return the namespace	url for	the given $prefix.

   Model queries
       "$boole = $model->canContain($tag,$childtag);"
	 Returns whether an element with qualified name	$tag can contain an
	 element with qualified	name $childtag.	 The tag names #PCDATA,
	 #Document, #Comment and #ProcessingInstruction	are specially
	 recognized.

       "$boole = $model->canHaveAttribute($tag,$attribute);"
	 Returns whether an element with qualified name	$tag is	allowed	to
	 have an attribute with	the given name.

SEE ALSO
       LaTeXML::Common::Model::DTD, LaTeXML::Common::Model::RelaxNG.

AUTHOR
       Bruce Miller <bruce.miller@nist.gov>

COPYRIGHT
       Public domain software, produced	as part	of work	done by	the United
       States Government & not subject to copyright in the US.

perl v5.32.0			  2019-06-11	     LaTeXML::Common::Model(3)

NAME | DESCRIPTION | SEE ALSO | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=LaTeXML::Common::Model&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help