A.11. views.xml

Файлы данного типа используются для описания представлений, см. Представления.

Схема XML доступна по адресу http://schemas.haulmont.com/cuba/6.8/view.xsd.

views - корневой элемент

Элементы views:

  • view - описатель View

    Атрибуты view:

    • class - класс сущности.

    • entity - имя сущности, например sales$Order. Может быть использован вместо атрибута class.

    • name - имя представления, должно быть уникальным в пределах сущности.

    • systemProperties - признак включения системных атрибутов сущности (входящих в состав базовых интерфейсов персистентных сущностей BaseEntity и Updatable). Необязательный атрибут, по умолчанию true.

    • overwrite - признак того, что данный описатель должен переопределить представление с таким же классом и именем, уже развернутое в репозитории. Необязательный атрибут, по умолчанию false.

    • extends - указывает имя представления той же сущности, от которого нужно унаследовать атрибуты. Порядок следования описателей в файле при этом не важен. Например, при указании extends="_local" в текущее представление будут включены все локальные атрибуты сущности. Необязательный атрибут.

    Элементы view:

    • property - описатель ViewProperty.

    Атрибуты property:

    • name - имя атрибута сущности.

    • view - для ссылочного атрибута указывает имя представления, с которым должна загружаться ассоциированная сущность. Порядок следования описателей в файле при этом не важен.

    • fetch - для ссылочного атрибута указывает как следует загружать сущность из базы данных. Подробнее см. Представления.

    Элементы property:

    • property - описатель атрибута связанной сущности. Таким способом можно определить неименованное представление для связанной сущности прямо внутри текущего описателя (inline).

  • include - включение другого файла типа views.xml

    Атрибуты include:

    • file - путь к файлу по правилам интерфейса Resources.

Пример:

<views xmlns="http://schemas.haulmont.com/cuba/view.xsd">

  <view class="com.sample.sales.entity.Order"
        name="order-with-customer"
        extends="_local">
      <property name="customer" view="_minimal"/>
  </view>

  <view class="com.sample.sales.entity.Item"
        name="itemsInOrder">
      <property name="quantity"/>
      <property name="product" view="_minimal"/>
  </view>

  <view class="com.sample.sales.entity.Order"
        name="order-with-customer-defined-inline"
        extends="_local">
      <property name="customer">
          <property name="name"/>
          <property name="email"/>
      </property>
  </view>
</views>

См. также свойство приложения cuba.viewsConfig.