ddn.data.xml.internal.entities
Internal: entity tables and expansion limits.
This module is not part of the public API and may change at any time.
Types 2
structXmlParserLimits
Parser resource and safety limits.
Fields
size_t maxInputBytesMaximum size of the input XML in bytes.size_t maxExpandedBytesMaximum total bytes produced after decoding/expansion.size_t maxExpansionDepthMaximum nesting depth for entity expansion.size_t maxRecursionDepthMaximum element nesting depth.size_t maxAttributeCountMaximum number of attributes per element.size_t maxNameLengthMaximum length of names (element names, attribute names, etc).structXmlEntityTable
Table of XML general entities.
This is used for entity expansion of entities declared in the internal subset (and later the external subset).
Fields
string[string] generalEntitiesMapping from entity name to replacement text.string[string] externalGeneralEntitiesMapping from entity name to external SYSTEM identifier (for external general entities).string[string] parameterEntitiesMapping from parameter entity name to replacement text.string[string] externalParameterEntitiesMapping from parameter entity name to external SYSTEM identifier.Methods
void defineExternal(string name, string systemId) @safeDefines an external general entity by its SYSTEM identifier.void defineExternalParameter(string name, string systemId) @safeDefines an external parameter entity by its SYSTEM identifier.Functions 8
fn
string decodeEntityReferences(string input, XmlParserLimits limits = XmlParserLimits.init) @safeDecodes predefined entities and numeric character references in `input`.fn
string decodeEntityReferences(
string input,
const(string)[string] generalEntities,
XmlParserLimits limits = XmlParserLimits.init) @safeDecodes predefined entities, numeric character references, and general entities.fn
string decodeParameterEntities(
string input,
const(string)[string] parameterEntities,
const(string)[string] externalParameterEntities,
XmlParserLimits limits,
string delegate(string systemId) @safe loadExternal) @safeDecodes parameter entity references (`%name;`).fn
string decodeEntityReferences(
string input,
const(string)[string] generalEntities,
const(string)[string] externalGeneralEntities,
XmlParserLimits limits,
string delegate(string systemId) @safe loadExternal) @safeDecodes predefined entities, numeric character references, internal general entities, and external general entities.private fn
string decodeEntityReferencesImpl(
string input,
const(string)[string] generalEntities,
const(string)[string] externalGeneralEntities,
XmlParserLimits limits,
size_t depth,
ref size_t total,
string delegate(string systemId) @safe loadExternal,
char trigger) @safe