Abaixo estão alguns princípios gerais sobre o uso de schemas de dados no Adobe Campaign.
Para saber mais sobre como criar e configurar schemas de dados no Adobe Campaign, consulte esta seção.
O documento XML de um schema de dados deve conter o <srcschema>
elemento raiz com os atributos name e namespace para preencher o nome e o namespace do schema.
<srcSchema name="schema_name" namespace="namespace">
...
</srcSchema>
O ponto de entrada do schema é seu elemento principal. É fácil identificar porque ele tem o mesmo nome do schema e deve se originar do elemento raiz. A descrição do conteúdo começa com esse elemento.
Em um schema de gestão de conteúdo, o elemento principal é representado pela seguinte linha:
<element name="book" template="ncm:content" xmlChildren="true">
O atributo template digitado no elemento principal permite estender o schema com propriedades genéricas para todas as definições de conteúdo, como o nome, a data de criação, o autor, a string associada, etc.
Essas propriedades são descritas no schema ncm:content.
A presença do atributo xmlChildren indica que a estrutura de dados inserida por meio do elemento principal é armazenada em um documento XML da instância de conteúdo.
Ao criar um novo schema ou durante uma extensão de schema, você precisa manter o mesmo valor de sequência da chave primária (@pkSequence) para todo o schema.
Este é um exemplo de um esquema de gerenciamento de conteúdo com os tipos preenchidos:
<srcSchema name="book" namespace="cus">
<element name="book" template="ncm:content" xmlChildren="true">
<attribute name="title" type="string"/>
<attribute name="date" type="date"/>
<attribute name="language" type="string"/>
<element name="chapter">
<attribute name="name" type="string"/>
<element name="page" type="string>
<attribute name="number" type="short"/>
</element>
</element>
</element>
</element>
Várias propriedades podem ser utilizadas para enriquecer os elementos <element>
e <attribute>
do schema de dados.
As principais propriedades utilizadas na gestão de conteúdo são as seguintes:
Este é o nosso exemplo de schema com as propriedades preenchidas:
<srcSchema name="book" namespace="cus">
<enumeration name="language" basetype="string" default="eng">
<value name="fra" label="French"/>
<value name="eng" label="English"/>
</enumeration>
<element name="book" label="Book" desc="Example book" template="ncm:content" xmlChildren="true">
<attribute name="title" type="string" label="Title" default="'New book'"/>
<attribute name="date" type="date" default="GetDate()"/>
<attribute name="language" type="string" label="Language" enum="language"/>
<element name="chapter" label="Chapter">
<attribute name="name" type="string" label="Name" desc="Name of chapter"/>
<element name="page" type="string" label="Page" desc="Page content">
<attribute name="number" type="short" label="Number" default="CounterValue('numPage')"/>
</element>
</element>
</element>
</srcSchema>
Uma coleção é uma lista de elementos com o mesmo nome e o mesmo nível hierárquico.
No nosso exemplo, os itens <chapter>
e <page>
são elementos de coleção. Portanto, o atributo unbound deve ser adicionado à definição desses elementos:
<element name="chapter" label="Chapter" unbound="true" ordered="true">
<element name="page" type="string" label="Page" desc="Content of page" unbound="true">
A presença do atributo ordered="true" permite a inserção dos elementos de coleção.
A referência de elemento é usado em muitos schemas de conteúdo. Ela permite fatorar a definição de um elemento <element>
para que ele possa ser referenciado em outros elementos com a mesma estrutura.
O atributo ref no elemento a ser referenciado deve ser preenchido com o caminho (XPath) do elemento de referência.
Exemplo: adição de uma seção do Appendix com a mesma estrutura do elemento <chapter>
do nosso schema de exemplo.
<srcSchema name="book" namespace="cus">
<element name="section">
<attribute name="name" type="string" label="Name" desc="Name"/>
<element name="page" type="string" label="Page" desc="Content of page">
<attribute name="number" type="short" label="Number" default="CounterValue('numPage')"/>
</element>
<element name="book" label="Book" desc="Example book" template="ncm:content" xmlChildren="true">
<attribute name="title" type="string" label="Title" default="'New book'"/>
<attribute name="date" type="date" default="GetDate()"/>
<attribute name="language" type="string" label="Language" enum="language"/>
<element name="chapter" label="Chapter" ref="section"/>
<element name="appendix" label="Appendix" ref="section"/>
</element>
</srcSchema>
A estrutura do capítulo é movida para o elemento com o nome "seção" fora do elemento principal. O capítulo e a seção fazem referência ao elemento "seção".
Um Cálculo de string é uma expressão XPath usada para criar uma string representando uma instância de conteúdo.
Aqui está nosso schema de exemplo com seu Cálculo de string:
<srcSchema name="book" namespace="cus">
<element name="book" label="Book" desc="Example book" template="ncm:content" xmlChildren="true">
<compute-string expr="@name"/>
...
</element>
</srcSchema>
O campo de edição permite a inserção do conteúdo XML do schema de origem:
Quando o schema de origem é salvo, a geração do schema estendido é iniciada automaticamente.
O controle de edição Name permite a inserção da chave do schema, que consiste no nome e no namespace. Os atributos name e namespace do elemento raiz do schema são atualizados automaticamente no campo de edição XML.