|Did you know ...||Search Documentation:|
library(sgml_write) provides the inverse of
the parser, converting the parser's output back into a file. This
process is fairly simple for XML, but due to the power of the SGML DTD
it is much harder to achieve a reasonable generic result for SGML.
These predicates can write the output in two encoding schemas depending on the encoding of the Stream. In UTF-8 mode, all characters are encoded using UTF-8 sequences. In ISO Latin-1 mode, characters outside the ISO Latin-1 range are represented using a named character entity if provided by the DTD or a numeric character entity.
false, the XML header is suppressed. Useful for embedding in other XML streams.
false, no layout characters are added. As this mode does not need to analyse the document it is faster and guarantees correct output when read back. Unfortunately the output is hardly human readable and causes problems with many editors.
identis added to use xml_write/3 to generate XML that is embedded in a larger XML document.
net(false)). For SGML, this applies to empty elements, so you get
<foo>(if foo is declared to be
EMPTYin the DTD),
net(true)). In SGML code, short character content not containing
can be emitted as
DOCTYPEheader and the content of the document as represented by Term to Stream. The Options are described with xml_write/3.
In most cases, the preferred way to create an XML document is to
create a Prolog tree of
element(Name, Attributes, Content)
terms and call xml_write/3
to write this to a stream. There are some exceptions where one might not
want to pay the price of the intermediate representation. For these
cases, this library contains building blocks for emitting markup data.
The quote funtions return a version of the input text into one that
contains entities for characters that need to be escaped. These are the
XML meta characters and the characters that cannot be expressed by the
document encoding. Therefore these predicates accept an encoding
argument. Accepted values are
Versions with two arguments are provided for backward compatibility,
making the safe
ascii encoding assumption.
<>&".4Older versions also mapped
'. Characters that cannot represented in Encoding are mapped to XML character entities.
The predicates in this section translate between values and their lexical forms for XML-Schema data types. They are implementated in C to achieve the best possible performance.
INF. If a Prolog float is converted into a string it returns the XML canonical form. This form always has one digit before the decimal dot, at least one digit after it and an exponential component using the capital
E. This predicate behaves as number_string/2 for integers.
syntax_error(xsd_number) if String
is given and is not a well-formed XSD number.
|Prolog term||Type||XSD string|
For the Prolog term all variables denote integers except for
S, which represents seconds as either an integer or float.
TZ argument is the offset from UTC in seconds. The
Type is written as xsd:name, but is in fact the
full URI of the XSD data type, e.g.,
In the XSD string notation, the letters YMDHS denote digits. The
notation SS is either a two-digit integer or a decimal number with two
digits before the floating point, e.g.
05.3 to denote 5.3
For most conversions, Type may be specified unbound and is
unified with the resulting type. For ambiguous conversions, Type
must be specified or an instantiation_error is raised. When converting
from Prolog to XSD serialization, D, M and Y are ambiguous. When
convertion from XSD serialization to Prolog, only DD and MM are
Type and String are both given and String
is a valid XSD date/time representation but not matching Type
a syntax error with the shape
syntax_error(Type) is raised.
If DateTime and Type are both given and DateTime
does not satisfy
Type a domain_error of the shape
domain_error(xsd_time(Type), DateTime) is raised.
The domain of numerical values is verified and a corresponding
domain_error exception is raised if the domain is violated. There is no
test for the existence of a date and thus
although non-existing is accepted as valid.
C14n2 specifies a canonical XML document. This library writes such a document from an XML DOM as returned by the XML (or SGML) parser. The process takes two steps:
xmlnsand the option