Class RdlSchema
What the report-definition schema says about an element: where a child belongs, whether it is required, and what kind of value it holds.
public static class RdlSchema
- Inheritance
-
RdlSchema
- Inherited Members
Remarks
Generated from the committed MS-RDL 2016 schema by
eng/Generate-RdlSchemaTable.ps1 — 253 types and 1,562 child declarations, which is
far too much to transcribe correctly by hand.
Why a caller needs this at all. An element's local name does not identify it:
Top is a size under a report item and an unitless percentage under
ChartElementPositionType, and Width is declared five times. Neither does its
position tell you whether order matters: 66 of the 253 types constrain child order and 187
do not, so appending a new element is correct most of the time and invalid the rest of the
time. Both questions are answered here or not at all.
Types are addressed by key. Named complexTypes use their own name; the schema's
anonymous ones — including the root, because Report declares no type at all — use a
synthetic parent/child key. A key the table does not know returns null everywhere,
which callers treat as "the schema has nothing to say", not as an error: a definition in the
2005 or 2008 namespace resolves wherever the names agree and falls back elsewhere.
Properties
- RootTypeKey
Gets the type key of a report definition's root element.
- TypeCount
Gets the number of types the table describes.
Methods
- ChildTypeKey(string?, string)
Resolves the type of a child element within a parent type.
- Type(string?)
Looks up what the schema says about a type.