Moodle APIs
3.8
Moodle 3.8.6 (Build: 20201109)
|
Class implementing one (more or less complete) UTF-8 XML writer. More...
Public Member Functions | |
__construct ($output, $contenttransformer=null, $casefolding=false) | |
begin_tag ($tag, $attributes=null) | |
Outputs one XML start tag with optional attributes (name => value array) | |
end_tag ($tag) | |
Outputs one XML end tag. | |
full_tag ($tag, $content=null, $attributes=null) | |
Outputs one tag completely (open, contents and close) | |
set_nonamespace_schema ($uri) | |
Set the URI location for the nonamespace schema to be used by the (whole) XML document. | |
set_prologue ($prologue) | |
Define the complete prologue to be used, replacing the simple, default one. | |
start () | |
Initializes the XML writer, preparing it to accept instructions, also invoking the underlying @xml_output init method to be ready for operation. | |
stop () | |
Finishes the XML writer, not accepting instructions any more, also invoking the underlying @xml_output finish method to close/flush everything as needed. | |
Protected Member Functions | |
get_default_prologue () | |
Get default prologue contents for this writer if there isn't a custom one. | |
text_content ($content) | |
Returns text contents processed by the corresponding @xml_contenttransformer. | |
write ($output) | |
Send some XML formatted chunk to output. | |
xml_safe_attr_content ($content) | |
Clean attribute content and encode needed chars (&, <, >, ") - single quotes not needed in this class
as far as we are enclosing with ". | |
xml_safe_text_content ($content) | |
Clean text content and encode needed chars (&, <, >) | |
xml_safe_utf8 ($content) | |
Perform some UTF-8 cleaning, stripping the control chars (\x0-\x1f) but tabs (\x9), newlines (\xa) and returns (\xd). More... | |
Protected Attributes | |
$casefolding | |
$contenttransformer | |
$lastwastext | |
$level | |
$nullcontent | |
$opentags | |
$output | |
$prologue | |
$running | |
$xmlschema | |
Class implementing one (more or less complete) UTF-8 XML writer.
General purpose class used to output UTF-8 XML contents easily. Can be customized using implementations of @xml_output (to define where to send the xml) and and @xml_contenttransformer (to perform any transformation in contents before outputting the XML).
Has support for attributes, basic w3c xml schemas declaration, and performs some content cleaning to avoid potential incorret UTF-8 mess and has complete exception support.
TODO: Provide UTF-8 safe strtoupper() function if using casefolding and non-ascii tags/attrs names TODO: Finish phpdocs
|
protected |
Perform some UTF-8 cleaning, stripping the control chars (\x0-\x1f) but tabs (\x9), newlines (\xa) and returns (\xd).
The delete control char (\x7f) is also included. All them are forbiden in XML 1.0 specs. The expression below seems to be UTF-8 safe too because it simply ignores the rest of characters. Also normalize linefeeds and return chars.