PhoenixmlDb.XSLT

XdmInMemoryStore

In-memory backing the XSLT engine's XDM tree. Exposed publicly so callers can construct an XDM source tree externally (e.g. via XmlDocumentParser), pass it into overloads that accept an + store, and then chain the typed result back into another transformation without serializing through XML markup.

#XdmInMemoryStore

Namespace: PhoenixmlDb.Xslt

In-memory

backing the XSLT engine's XDM tree. Exposed publicly so callers can construct an XDM source tree externally (e.g. via

XmlDocumentParser

), pass it into

overloads that accept an

+ store, and then chain the typed result back into another transformation without serializing through XML markup.

Implements INodeBuilder (and therefore INodeStore / INodeProvider), so the same store satisfies both XSLT and XQuery engines. NodeIds and NamespaceIds allocated by this store are scoped to the store instance — they are not portable across stores.

The store starts with the well-known XML and XMLNS namespace IDs pre-registered (NamespaceId.Xml and NamespaceId.Xmlns) so that node trees built externally see the same canonical mappings the engine uses.

#Methods

#AdvanceNextIdBy(UInt64)

Advances the internal NodeId counter by

. Used after an external allocator (e.g.

XmlDocumentParser

) has claimed a contiguous range starting at

.

#EnumerateAttributes(PhoenixmlDb.Xdm.Nodes.XdmElement)

Allocation-free attribute iteration: returns a struct enumerator that walks

by index (no boxed IEnumerator) and looks up each attribute in the store. Use this on hot paths where the alternative is the

yield-iterator state machine.

#PeekNextId

Returns the next NodeId that would be allocated, without consuming it. Used by callers that need to hand the value to an allocator (e.g.

XmlDocumentParser

) before reserving the range via

.

#RegisterKnownNamespace(PhoenixmlDb.Core.NamespaceId,String)

Registers a well-known NamespaceId → URI mapping (does not allocate a new ID).

#Remove(PhoenixmlDb.Core.NodeId)

Removes a node from the store. Used by streaming execution to free temporary nodes after they have been processed.