Skip to content

Reporting.XDesignXElement

XDesignXElement inherits SAIFXElement (from the SAIF framework) and implements a custom XML-to-xPression-markup renderer with primary/foreign "key" propagation: elements added via AddKey are tracked as primary keys, and when the tree is rendered, every descendant element inherits ancestor keys as "foreign keys," emitting them as sibling tags ahead of its own children. This is the element-level engine behind Reporting.XDesignXDocument.ToXpression().

Purpose

  • Track primary/foreign "key" relationships across an XML element tree so that xPression Design templates receive the key context they require at every nesting level.
  • Render an element (and its descendants) into the proprietary tag format expected by xPression Design templates.

Context

  • Namespace: SAIF.Services.Printing.Reporting
  • Assembly/package: SAIF.Services.Printing (embedded, front-end referenced)

Public members

Member Signature Purpose
AddKey(...) Public Sub AddKey(...) Registers this element as a primary key, so descendant elements will inherit it as a foreign key during rendering.*
Rendering method (invoked by XDesignXDocument.ToXpression()) (internal to the class hierarchy) Emits this element and its descendants in xPression markup, propagating ancestor keys as foreign-key sibling tags ahead of each element's own children.*

Inherited public members

Members in this section are inherited from SAIFXElement in SAIF.BOF.Framework. They are available on this type through inheritance.

Member Signature Purpose Origin
Base SAIFXElement XML element members (e.g., attribute/child element access) (inherited from SAIFXElement) Provides the underlying XElement-like tree node that XDesignXElement extends with xPression-specific key propagation and markup rendering.† SAIF.BOF.Framework — SAIFXElement

Behavioral notes

  • The Extensions module in the same namespace (ToSAIFXElement/ToSAIFXDocument) converts plain XElement/XDocument trees into XDesignXElement/XDesignXDocument equivalents, providing an on-ramp from ordinary XML construction into this bespoke serialization scheme.*

Constraints and usage notes

  • This is a bespoke serialization scheme specific to the shape expected by xPression Design templates, not a generic XML utility.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with † were retrieved from dependency library documentation via the Legends CLI RAG service. They describe inherited behavior from the indicated origin library and should be verified if the dependency version changes.

Sources

  • SAIF.Services.Printing\Reporting\XDesignXElement.vb