Metadata describes your XML content. Metadata can be used for many applications, including indexation and categorization to help you find your content and also for flagging and filtering when processing your content.
The metadata you define to describe your XML content can either be stored internally or externally. Internal metadata is stored using XML markup within the same file as your XML content. It is generally updated using a standard XML editor or authoring tool. External metadata is not stored in the same file as your XML content. In the case of Alfresco, external metadata is stored as properties. Properties can be updated via the Alfresco Explorer interface. Both internal and external metadata have their advantages.
Internal metadata can be extracted from your XML content and stored externally (metadata extraction). Likewise, external metadata can be injected into your XML content and stored internally (metadata injection). Metadata that is both extracted and injected, is synchronized (metadata synchronization).
Metadata management in Componize for Alfresco processes your content by putting it through a metadata pipeline. The metadata pipelines are similar to the pipelines used for output processing, however they have been optimized for metadata management. They allow you to either extract metadata from your XML content, inject metadata into your XML content or synchronize the metadata.
Once the metadata management has been enabled on a file, the internal metadata will be automatically extracted from your XML content every time the file is written. The external metadata will be automatically injected into your XML content, every time the external metadata is modified.
The actual metadata that is extracted and/or injected is fully configurable. In most cases, you can use simple XPath expressions to identify the metadata and where it is located in your XML content. In more advanced cases, a metadata extractor plugin or metadata interceptor plugin (for injection) can be written.