Descrição da Unit

A Unit utuFieldCollection fornece um conjunto de métodos que permitem a criação de coleções de dados. Ela é descrita abaixo:

unit utuFieldCollection;

interface

uses
  acuFramework, acuObject, utuMessage;

type
  utFieldCollection = class
    class function AddCollection(const piFieldName: string; const poField: utField): utField;
    class procedure AddCurioNamespace(const piField: utField);
    class procedure SetToUnwrap(const piField: utField);
  end;

implementation

uses
  sysUtils, ucuUseCase;

class function utFieldCollection.AddCollection(const piFieldName: string;
  const poField: utField): utField;
var
  lField: utField;
begin
  lField := poField.AddField(piFieldName);
  lField.AddAttribute('curio:collection').AsBoolean := true;
  Result := lField;
end;

class procedure utFieldCollection.AddCurioNamespace(const piField: utField);
begin
  piField.AddAttribute('xmlns:curio').AsString := 'http://www.evologica.com.br/';
end;

class procedure utFieldCollection.SetToUnwrap(const piField: utField);
begin
  piField.AddAttribute('curio:unwrap').AsBoolean := true;
end;

initialization

finalization

end.

O método AddCollection cria um novo campo no XML anotado como uma coleção. Ele recebe como parâmetro o nome da coleção e o campo pai da coleção.

O método SetToUnwrap é utilizado para demarcar quais campos do XML devem ser "desembrulhados", isto é, devem ter apenas seus valores internos considerados. Ele recebe como parâmetro o campo a ser anotado. Obs: um campo anotado com unwrap não deve ter filhos, apenas um valor único.

O método AddCurioNamespace define o namespace curio que é utilizado para definir uma coleção e se os elementos dentro de uma coleção devem ser "desembrulhados". Ele recebe como parâmetro o campo raiz, então sugere-se passar o campo do SYSMSG como seu argumento.