Table of Contents

Class RdlSchema

Namespace
DocWright.Reporting
Assembly
DocWright.Reporting.dll

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.