Linguagem RDL (SSRS)

A linguagem RDL é uma representação XML de uma definição de relatório SSRS (SQL Server Reporting Services). Uma definição de relatório contém informações de layout e recuperação de dados de um relatório. A linguagem RDL é composta por elementos XML que correspondem a uma gramática XML criada para o Reporting Services. É possível personalizar funções para controlar os valores do item de relatório, os estilos e a formatação acessando os assemblies de código nos arquivos de definição de relatório.

A linguagem RDL promove a interoperabilidade de produtos de relatórios comerciais definindo um esquema comum que habilita o intercâmbio de definições de relatório. A linguagem RDL é:

  • Um esquema XML para definições de relatório.
  • Um formato de intercâmbio para negócios e terceiros.
  • Um esquema extensível e aberto que oferece suporte a mais namespaces e elementos personalizados.

Pré-requisitos

Qualquer protocolo ou interface programática que funcione com o XML pode ser usada com a linguagem RDL.

Especificações de RDL

Para baixar as especificações de versões de esquema específicas, consulte Especificação da linguagem RDL.

Definição de esquema XML RDL

Um arquivo de linguagem RDL do SSRS é validado com o uso de um arquivo XSD (definição de esquema XML). O esquema define as regras para onde os elementos RDL podem ocorrer em um arquivo .rdl. Um elemento inclui seu tipo de dados e a cardinalidade, ou seja, o número de ocorrências que são permitidas. Um elemento pode ser simples ou complexo. Um elemento simples não tem elementos filhos ou atributos. Um elemento complexo tem elementos filhos e pode ter atributos.

Por exemplo, o esquema inclui o elemento RDL ReportParameters, que é o tipo complexo ReportParametersType.

  • Por convenção, um tipo complexo para um elemento é o nome do elemento seguido da palavra Type.
  • Um elemento ReportParameters pode estar contido no elemento Report (um tipo complexo) e pode conter elementos ReportParameter .
  • Um ReportParameterType é um tipo simples que pode ser somente um dos seguintes valores: Boolean, DateTime, Integer, Floatou String.

Para obter mais informações sobre os tipos de dados de Esquema XML, consulte XML Schema Part 2: Datatypes Second Edition(em inglês).

O RDL XSD está disponível no arquivo ReportDefinition.xsd, localizado na pasta Extras no CD-ROM do produto. Ele também está disponível no servidor de relatório por meio da seguinte URL: https://servername/reportserver/reportdefinition.xsd.

Criar RDL

Crie ferramentas e aplicativos que gerem RDL com base em seu esquema XML devido à natureza aberta e extensível da RDL.

Reporting Services fornece várias ferramentas para compilar arquivos RDL. Para obter mais informações, consulte Ferramentas do Reporting Services.

  • Gere RDL de um aplicativo usando as classes do Microsoft .NET Framework dos namespaces System.Xml e System.Linq.
  • Use oXmlTextWriter para escrever RDL. Com o XmlTextWriter, você pode gerar uma definição de relatório completa do começo ao fim em qualquer aplicativo do .NET Framework . Para obter mais informações sobre a classe XmlTextWriter e o namespace System.Xml, consulte o Guia do Desenvolvedor do Microsoft .NET Framework.

Os desenvolvedores podem estender a linguagem RDL adicionando itens de relatório personalizados com propriedades personalizadas. Para obter mais informações sobre a LINQ (consulta integrada à linguagem), pesquise "LINQ para XML" no Microsoft Developer Network.

A extensão de arquivo padrão para arquivos de definição de relatório é .rdl. Você pode desenvolver arquivos de definição de relatório de cliente, os quais têm as extensões .rdlc. O tipo de MIME para ambas as extensões é texto/xml. Para obter mais informações, consulte Relatórios do Reporting Services (SSRS).

Tipos RDL

A tabela a seguir lista os tipos usados em elementos e atributos RDL.

Tipo Descrição
Binary Uma propriedade com um valor binário codificado na base 64.
Booliano Uma propriedade que define o valor do objeto como true ou false . A menos que seja especificado o contrário, o valor de um objeto Booliano opcional omitido é False.
Data Uma propriedade com data ou valor de data/hora completamente especificados no formato de data ISO8601: YYYY-MM-DD[THH:MM[:SS[.S]]].
Enumeração Uma propriedade com um valor de texto de cadeia de caracteres que deve estar na lista de valores designados.
Valor Flutuante Uma propriedade com um valor flutuante. O ponto (.) é usado como o separador decimal opcional.
Inteiro Uma propriedade com um valor inteiro (int32).
Idioma Uma propriedade com um valor de texto que contém linguagem e código de cultura, como "pt-br" para português do Brasil. O valor deve ser composto por uma linguagem específica ou neutra para qual a linguagem padrão possa ser definida no Microsoft .NET Framework.
Nome Uma propriedade com um valor de texto de cadeia de caracteres. Os nomes devem ser exclusivos dentro do namespace do item. Caso não seja especificado, o namespace de um item é o objeto interno que contém o nome.
NormalizedString Uma propriedade com um valor de texto de sequência de caracteres que foi normalizado.
Tamanho Um elemento de tamanho deve conter um número com um caractere de período usado como um separador decimal opcional. Um designador para uma unidade de comprimento de CSS como cm, mm, in, pc ou pt deve seguir o número. Um espaço entre o número e o designador é opcional. Para obter mais informações, consulte Valores de CSS e referência de unidades.

No RDL, o valor máximo de Size é de 160 polegadas. O tamanho mínimo é de 0 polegada.
Cadeia de caracteres Uma propriedade com um valor de texto de cadeia de caracteres.
UnsignedInt Uma propriedade com um valor inteiro não atribuído (uint32).
Variante Uma propriedade com qualquer tipo de XML simples.

Tipos de dados RDL

A enumeração DataType define o tipo de dados de um atributo, expressão ou parâmetro no RDL. A tabela a seguir mostra como os tipos de dados CLR (Common Language Runtime) correspondem aos tipos de dados RDL.

Tipo(s) CLR Tipo de dados correspondente
Booliano Boolean
DateTime, DateTimeOffset Datetime
Int16, Int32, UInt16, Byte, SByte Integer
Single e Double Float
String, Char, GUID, Timespan String