Сначала создайте схему (например, myType.xsd ), которая определяет новые свойства:
<?xml version="1.0"?>
<xs:schema targetNamespace="http://www.nuxeo.org/ecm/schemas/cf-client/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="organization" type="xs:string"/>
<xs:element name="phone" type="xs:string"/>
<xs:element name="expired" type="xs:date"/>
</xs:schema>
Затем определите расширение типа, где вы ссылаетесь на Недавно созданная схема:
<?xml version="1.0"?>
<component name="my.project.nuxeo.types">
<require>org.nuxeo.ecm.core.CoreExtensions</require>
<extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
<schema name="myType" prefix="mt" src="schema/myType.xsd"/>
</extension>
<extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
<doctype name="MyType" extends="Document">
<schema name="myType"/>
<schema name="common" />
<schema name="dublincore" />
<schema name="uid" />
<schema name="file"/>
<schema name="files" />
<facet name="Commentable"/>
<facet name="NXTag"/>
</doctype>
</extension>
</component>
Примечание: Вы также можете:
Затем зарегистрируйте расширение нового типа из предыдущего шага в файле MANIFEST.MF :
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
Bundle-Vendor: my.project.nuxeo
Bundle-Name: my-project-nuxeo-core
Bundle-SymbolicName: my.project.nuxeo.my-project-nuxeo-core;singleton=true
Bundle-Version: 1.0.0
Nuxeo-Component: OSGI-INF/types.xml
Заархивируйте все эти файлы в архив jar со следующей структурой:
my-project-nuxeo-core.jar
├── META-INF
│ └── MANIFEST.MF
├── OSGI-INF
│ └── types.xml
└── schema
└── myType.xsd
и скопируйте полученный архив jar в каталог nxserver / bundles вашей установки Nuxeo. Перезапустите Nuxeo, и он автоматически обновит структуру БД.
Дополнительную информацию можно найти в документации по Nuxeo - например, здесь: https://doc.nuxeo.com/nxdoc/data-modeling/