Index: src/main/java/org/apache/tika/metadata/IPTC.java =================================================================== --- src/main/java/org/apache/tika/metadata/IPTC.java (revision 1339710) +++ src/main/java/org/apache/tika/metadata/IPTC.java (working copy) @@ -21,33 +21,25 @@ package org.apache.tika.metadata; /** - * IPTC Photo Metadata schema. This is a collection of - * {@link Property property definition} constants for the Photo Metadata + * IPTC photo metadata schema. + * + * A collection of + * {@link Property property definition} constants for the photo metadata * properties defined in the IPTC standard. * - * Note - the Properties with the _DCPROPERTY are expected to change shortly - * * @since Apache Tika 1.1 * @see IPTC Photo Metadata */ public interface IPTC { - String NAMESPACE_URI_DC = "http://purl.org/dc/elements/1.1/"; String NAMESPACE_URI_IPTC_CORE = "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"; String NAMESPACE_URI_IPTC_EXT = "http://iptc.org/std/Iptc4xmpExt/2008-02-29/"; - String NAMESPACE_URI_PHOTOSHOP = "http://ns.adobe.com/photoshop/1.0/"; String NAMESPACE_URI_PLUS = "http://ns.useplus.org/ldf/xmp/1.0/"; - String NAMESPACE_URI_XMP_RIGHTS = "http://ns.adobe.com/xap/1.0/rights/"; - String PREFIX_DC = "dc"; String PREFIX_IPTC_CORE = "Iptc4xmpCore"; String PREFIX_IPTC_EXT = "Iptc4xmpExt"; - String PREFIX_PHOTOSHOP = "photoshop"; String PREFIX_PLUS = "plus"; - String PREFIX_XMP_RIGHTS = "xmpRights"; - String PREFIX_DELIMITER = ":"; - /** * Name of the city the content is focussing on -- either the place shown * in visual media or referenced by text or audio media. This element is at @@ -60,9 +52,10 @@ * in the Image. *
* Maps to this IIM property: 2:90 City + * + * @see Photoshop#CITY */ - Property CITY = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "City"); + Property CITY = Photoshop.CITY; /** * Full name of the country the content is focussing on -- either the @@ -78,9 +71,10 @@ * in the Image. *
* Maps to this IIM property: 2:101 Country/Primary Location Name + * + * @see Photoshop#COUNTRY */ - Property COUNTRY = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "Country"); + Property COUNTRY = Photoshop.COUNTRY; /** * Code of the country the content is focussing on -- either the country @@ -98,7 +92,7 @@ * Maps to this IIM property: 2:100 Country/Primary Location Code */ Property COUNTRY_CODE = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CountryCode"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CountryCode"); /** * A textual description, including captions, of the item's content, @@ -110,17 +104,19 @@ * Lang Alt value type as specified by the XMP specifications. *
* Maps to this IIM property: 2:120 Caption/Abstract + * + * @see DublinCore#DESCRIPTION */ - Property DESCRIPTION_DCPROPERTY = Property.internalText( - PREFIX_DC + PREFIX_DELIMITER + "description"); + Property DESCRIPTION = DublinCore.DESCRIPTION; /** * A brief synopsis of the caption. Headline is not the same as Title. *
* Maps to this IIM property: 2:105 Headline + * + * @see Photoshop#HEADLINE */ - Property HEADLINE = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "Headline"); + Property HEADLINE = Photoshop.HEADLINE; /** * Describes the nature, intellectual, artistic or journalistic @@ -133,7 +129,7 @@ * Maps to this IIM property: 2:04 Object Attribute Reference */ Property INTELLECTUAL_GENRE = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "IntellectualGenre"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "IntellectualGenre"); /** * Keywords to express the subject of the content. Keywords may be free @@ -145,9 +141,10 @@ * but must allow for phrases as well. *
* Maps to this IIM property: 2:25 Keywords - */ - Property KEYWORDS_DCPROPERTY = Property.internalTextBag( - PREFIX_DC + PREFIX_DELIMITER + "subject"); + * + * @see DublinCore#SUBJECT + */ + Property KEYWORDS = DublinCore.SUBJECT; /** * Name of the subregion of a country -- either called province or state or @@ -162,9 +159,10 @@ * in the Image. *
* Maps to this IIM property: 2:95 Province/State + * + * @see Photoshop#STATE */ - Property PROVINCE_OR_STATE = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "State"); + Property PROVINCE_OR_STATE = Photoshop.STATE; /** * Describes the scene of a news content. Specifies one or more terms @@ -175,7 +173,7 @@ * about the IPTC Scene-NewsCodes at www.newscodes.org. */ Property SCENE_CODE = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "Scene"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "Scene"); /** * Specifies one or more Subjects from the IPTC Subject-NewsCodes taxonomy @@ -187,7 +185,7 @@ * IPTC Subject-NewsCodes at www.newscodes.org. */ Property SUBJECT_CODE = Property.internalTextBag( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "SubjectCode"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "SubjectCode"); /** * Name of a sublocation the content is focussing on -- either the @@ -206,7 +204,7 @@ * Maps to this IIM property: 2:92 Sublocation */ Property SUBLOCATION = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "Location"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "Location"); /** * Designates the date and optionally the time the intellectual content was @@ -225,27 +223,30 @@ * camera to the user for entering this date for the first time. *
* Maps to this IIM property: 2:55 Date Created + * + * @see Photoshop#DATE_CREATED */ - Property DATE_CREATED = Property.internalDate( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "DateCreated"); + Property DATE_CREATED = Photoshop.DATE_CREATED; /** * Identifier or the name of the person involved in writing, editing or * correcting the description of the content. *
* Maps to this IIM property: 2:122 Writer/Editor + * + * @see Photoshop#CAPTION_WRITER */ - Property DESCRIPTION_WRITER = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "CaptionWriter"); + Property DESCRIPTION_WRITER = Photoshop.CAPTION_WRITER; /** * Any of a number of instructions from the provider or creator to the * receiver of the item. *
* Maps to this IIM property: 2:40 Special Instruction + * + * @see Photoshop#INSTRUCTIONS */ - Property INSTRUCTIONS = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "Instructions"); + Property INSTRUCTIONS = Photoshop.INSTRUCTIONS; /** * Number or identifier for the purpose of improved workflow handling. This @@ -258,9 +259,10 @@ * to this field. *
* Maps to this IIM property: 2:103 Original Transmission Reference + * + * @see Photoshop#TRANSMISSION_REFERENCE */ - Property JOB_ID = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "TransmissionReference"); + Property JOB_ID = Photoshop.TRANSMISSION_REFERENCE; /** * A shorthand reference for the item. Title provides a short human readable @@ -279,9 +281,10 @@ * Alt value type as specified by the XMP specifications. *
* Maps to this IIM property: 2:05 Object Name - */ - Property TITLE_DCPROPERTY = Property.internalText( - PREFIX_DC + PREFIX_DELIMITER + "title"); + * + * @see DublinCore#TITLE + */ + Property TITLE = DublinCore.TITLE; /** * Contains any necessary copyright notice for claiming the intellectual @@ -301,9 +304,10 @@ * value type as specified by the XMP specifications. *
* Maps to this IIM property: 2:116 Copyright Notice - */ - Property COPYRIGHT_NOTICE = Property.internalText( - PREFIX_DC + PREFIX_DELIMITER + "rights"); + * + * @see DublinCore#RIGHTS + */ + Property COPYRIGHT_NOTICE = DublinCore.RIGHTS; /** * Contains the name of the person who created the content of this item, a @@ -317,9 +321,10 @@ * fields in sync. *
* Maps to this IIM property: 2:80 By-line - */ - Property CREATOR_DCPROPERTY = Property.internalText( - PREFIX_DC + PREFIX_DELIMITER + "creator"); + * + * @see DublinCore#CREATOR + */ + Property CREATOR = DublinCore.CREATOR; /** * The creator's contact information provides all necessary information to @@ -338,7 +343,7 @@ * specification RFC 2426. */ Property CREATORS_CONTACT_INFO = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CreatorContactInfo"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CreatorContactInfo"); /** * Contains the job title of the person who created the content of this @@ -346,9 +351,10 @@ * in as mandatory prerequisite for using Creator's Jobtitle. *
* Maps to this IIM property: 2:85 By-line Title + * + * @see Photoshop#AUTHORS_POSITION */ - Property CREATORS_JOB_TITLE = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "AuthorsPosition"); + Property CREATORS_JOB_TITLE = Photoshop.AUTHORS_POSITION; /** * The credit to person(s) and/or organisation(s) required by the supplier @@ -362,9 +368,10 @@ * "Credit Line" as the field is used for this purpose by many users. *
* Maps to this IIM property: 2:110 Credit + * + * @see Photoshop#CREDIT_LINE */ - Property CREDIT_LINE = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "Credit"); + Property CREDIT_LINE = Photoshop.CREDIT; /** * The licensing parameters of the item expressed in free-text. @@ -372,8 +379,7 @@ * The PLUS fields of the IPTC Extension can be used in parallel to express * the licensed usage in more controlled terms. */ - Property RIGHTS_USAGE_TERMS = Property.internalText( - PREFIX_XMP_RIGHTS + PREFIX_DELIMITER + "UsageTerms"); + Property RIGHTS_USAGE_TERMS = XMPRights.USAGE_TERMS; /** * Identifies the original owner of the copyright for the intellectual @@ -386,9 +392,10 @@ * entered following the news object's initial creation. *
* Maps to this IIM property: 2:115 Source + * + * @see Photoshop#SOURCE */ - Property SOURCE = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "Source"); + Property SOURCE = Photoshop.SOURCE; /** * The contact information address part. Comprises an optional company name @@ -400,7 +407,7 @@ * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426. */ Property CONTACT_INFO_ADDRESS = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CiAdrExtadr"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CiAdrExtadr"); /** * The contact information city part. @@ -410,7 +417,7 @@ * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426. */ Property CONTACT_INFO_CITY = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CiAdrCity"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CiAdrCity"); /** * The contact information country part. @@ -420,7 +427,7 @@ * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426. */ Property CONTACT_INFO_COUNTRY = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CiAdrCtry"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CiAdrCtry"); /** * The contact information email address part. @@ -437,7 +444,7 @@ * specification RFC 2426. */ Property CONTACT_INFO_EMAIL = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CiEmailWork"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CiEmailWork"); /** * The contact information phone number part. @@ -454,7 +461,7 @@ * specification RFC 2426. */ Property CONTACT_INFO_PHONE = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CiTelWork"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CiTelWork"); /** * The contact information part denoting the local postal code. @@ -464,7 +471,7 @@ * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426. */ Property CONTACT_INFO_POSTAL_CODE = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CiAdrPcode"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CiAdrPcode"); /** * The contact information part denoting regional information such as state or province. @@ -474,7 +481,7 @@ * Note 2: the ContactInfo naming aligns with the vCard specification RFC 2426. */ Property CONTACT_INFO_STATE_PROVINCE = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CiAdrRegion"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CiAdrRegion"); /** * The contact information web address part. Multiple addresses can be given, separated by a comma. @@ -487,7 +494,7 @@ * specification RFC 2426. */ Property CONTACT_INFO_WEB_URL = Property.internalText( - PREFIX_IPTC_CORE + PREFIX_DELIMITER + "CiUrlWork"); + PREFIX_IPTC_CORE + Metadata.NAMESPACE_PREFIX_DELIMITER + "CiUrlWork"); /** * As this metadata element pertains to distribution management, it was not @@ -497,8 +504,7 @@ * * @deprecated */ - Property PHOTOSHOP_URGENCY = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "Urgency"); + Property PHOTOSHOP_URGENCY = Photoshop.URGENCY; /** * As this metadata element was earmarked as deprecated already for IIM 4.1, @@ -510,8 +516,7 @@ * * @deprecated */ - Property PHOTOSHOP_CATEGORY = Property.internalText( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "Category"); + Property PHOTOSHOP_CATEGORY = Photoshop.CATEGORY; /** * As this metadata element was earmarked as deprecated already for IIM 4.1, @@ -521,8 +526,7 @@ * * @deprecated */ - Property PHOTOSHOP_SUPPLEMENTAL_CATEGORIES = Property.internalTextBag( - PREFIX_PHOTOSHOP + PREFIX_DELIMITER + "SupplementalCategories"); + Property PHOTOSHOP_SUPPLEMENTAL_CATEGORIES = Photoshop.SUPPLEMENTAL_CATEGORIES; /** * Information about the ethnicity and other facets of the model(s) in a @@ -531,19 +535,19 @@ * Use the Model Age field for the age of model(s). */ Property ADDITIONAL_MODEL_INFO = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "AddlModelInfo"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "AddlModelInfo"); /** * A set of metadata about artwork or an object in the item */ Property ARTWORK_OR_OBJECT = Property.internalTextBag( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "ArtworkOrObject"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "ArtworkOrObject"); /** * A set of metadata about artwork or an object in the item */ Property ORGANISATION_CODE = Property.internalTextBag( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "OrganisationInImageCode"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "OrganisationInImageCode"); /** * A term to describe the content of the image by a value from a Controlled @@ -554,7 +558,7 @@ * IPTC metadata or other user interfaces unless agreed by the IPTC. */ Property CONTROLLED_VOCABULARY_TERM = Property.internalTextBag( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "CVterm"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "CVterm"); /** * A location the content of the item is about. For photos that is a @@ -564,7 +568,7 @@ * the property Location Created should be used too. */ Property LOCATION_SHOWN = Property.internalTextBag( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationShown"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationShown"); /** * Age of the human model(s) at the time this image was taken in a model @@ -574,7 +578,7 @@ * young models. Ages below 18 years should not be included. */ Property MODEL_AGE = Property.internalTextBag( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "ModelAge"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "ModelAge"); /** * Name of the organisation or company which is featured in the content. @@ -583,14 +587,14 @@ * Organisation Code field. */ Property ORGANISATION_NAME = Property.internalTextBag( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "OrganisationInImageName"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "OrganisationInImageName"); /** * Name of a person the content of the item is about. For photos that is a * person shown in the image. */ Property PERSON = Property.internalTextBag( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "PersonInImage"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "PersonInImage"); /** * Globally unique identifier for the item. It is created and applied by the @@ -621,7 +625,7 @@ * its type and brand can be found in the Exif/technical metadata. */ Property DIGITAL_IMAGE_GUID = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "DigImageGUID"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "DigImageGUID"); /** * The type of the source digital file. @@ -631,13 +635,13 @@ * @deprecated */ Property DIGITAL_SOURCE_FILE_TYPE = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "DigitalSourcefileType"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "DigitalSourcefileType"); /** * The type of the source of this digital image */ Property DIGITAL_SOURCE_TYPE = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "DigitalSourceType"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "DigitalSourceType"); /** * Names or describes the specific event the content relates to. @@ -648,7 +652,7 @@ * be named by this property too. */ Property EVENT = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "Event"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "Event"); /** * Both a Registry Item Id and a Registry Organisation Id to record any @@ -662,7 +666,7 @@ * fields should be made mandatory. */ Property IMAGE_REGISTRY_ENTRY = Property.internalTextBag( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "RegistryId"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "RegistryId"); /** * Identifies the most recent supplier of the item, who is not necessarily @@ -677,7 +681,7 @@ * schema. */ Property IMAGE_SUPPLIER = Property.internalText( - PREFIX_PLUS + PREFIX_DELIMITER + "ImageSupplier"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "ImageSupplier"); /** * Identifies the most recent supplier of the item, who is not necessarily @@ -692,7 +696,7 @@ * schema. */ Property IMAGE_SUPPLIER_ID = Property.internalText( - PREFIX_PLUS + PREFIX_DELIMITER + "ImageSupplierId"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "ImageSupplierId"); /** * Identifies the most recent supplier of the item, who is not necessarily @@ -707,7 +711,7 @@ * schema. */ Property IMAGE_SUPPLIER_NAME = Property.internalText( - PREFIX_PLUS + PREFIX_DELIMITER + "ImageSupplierName"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "ImageSupplierName"); /** * Optional identifier assigned by the Image Supplier to the image. @@ -716,7 +720,7 @@ * schema. */ Property IMAGE_SUPPLIER_IMAGE_ID = Property.internalText( - PREFIX_PLUS + PREFIX_DELIMITER + "ImageSupplierImageID"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "ImageSupplierImageID"); /** * The date and optionally time when any of the IPTC photo metadata fields @@ -732,7 +736,7 @@ * property of the XMP Basic scheme. */ Property IPTC_LAST_EDITED = Property.internalDate( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "IptcLastEdited"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "IptcLastEdited"); /** * The location the content of the item was created. @@ -742,21 +746,21 @@ * used. */ Property LOCATION_CREATED = Property.internalTextBag( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationCreated"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationCreated"); /** * The maximum available height in pixels of the original photo from which * this photo has been derived by downsizing. */ Property MAX_AVAIL_HEIGHT = Property.internalInteger( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "MaxAvailHeight"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "MaxAvailHeight"); /** * The maximum available width in pixels of the original photo from which * this photo has been derived by downsizing. */ Property MAX_AVAIL_WIDTH = Property.internalInteger( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "MaxAvailWidth"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "MaxAvailWidth"); /** * The version number of the PLUS standards in place at the time of the @@ -767,7 +771,7 @@ * "PLUS Version" should be set to the string "1.2.0" */ Property PLUS_VERSION = Property.internalText( - PREFIX_PLUS + PREFIX_DELIMITER + "Version"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "Version"); /** * Owner or owners of the copyright in the licensed image. @@ -779,7 +783,7 @@ * schema. */ Property COPYRIGHT_OWNER = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "CopyrightOwner"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "CopyrightOwner"); /** * The ID of the owner or owners of the copyright in the licensed image. @@ -791,7 +795,7 @@ * schema. */ Property COPYRIGHT_OWNER_ID = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "CopyrightOwnerId"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "CopyrightOwnerId"); /** * The name of the owner or owners of the copyright in the licensed image. @@ -803,7 +807,7 @@ * schema. */ Property COPYRIGHT_OWNER_NAME = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "CopyrightOwnerName"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "CopyrightOwnerName"); /** * Creator or creators of the image. @@ -818,7 +822,7 @@ * schema. */ Property IMAGE_CREATOR = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "ImageCreator"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "ImageCreator"); /** * The ID of the creator or creators of the image. @@ -833,7 +837,7 @@ * schema. */ Property IMAGE_CREATOR_ID = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "ImageCreatorId"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "ImageCreatorId"); /** * The name of the creator or creators of the image. @@ -848,7 +852,7 @@ * schema. */ Property IMAGE_CREATOR_NAME = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "ImageCreatorName"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "ImageCreatorName"); /** * A person or company that should be contacted to obtain a licence for @@ -858,7 +862,7 @@ * schema. */ Property LICENSOR = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "Licensor"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "Licensor"); /** * The ID of the person or company that should be contacted to obtain a licence for @@ -868,7 +872,7 @@ * schema. */ Property LICENSOR_ID = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorId"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorId"); /** * The name of the person or company that should be contacted to obtain a licence for @@ -878,7 +882,7 @@ * schema. */ Property LICENSOR_NAME = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorName"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorName"); /** * The city of a person or company that should be contacted to obtain a licence for @@ -888,7 +892,7 @@ * schema. */ Property LICENSOR_CITY = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorCity"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorCity"); /** * The country of a person or company that should be contacted to obtain a licence for @@ -898,7 +902,7 @@ * schema. */ Property LICENSOR_COUNTRY = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorCountry"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorCountry"); /** * The email of a person or company that should be contacted to obtain a licence for @@ -908,7 +912,7 @@ * schema. */ Property LICENSOR_EMAIL = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorEmail"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorEmail"); /** * The extended address of a person or company that should be contacted to obtain a licence for @@ -918,7 +922,7 @@ * schema. */ Property LICENSOR_EXTENDED_ADDRESS = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorExtendedAddress"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorExtendedAddress"); /** * The postal code of a person or company that should be contacted to obtain a licence for @@ -928,7 +932,7 @@ * schema. */ Property LICENSOR_POSTAL_CODE = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorPostalCode"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorPostalCode"); /** * The region of a person or company that should be contacted to obtain a licence for @@ -938,7 +942,7 @@ * schema. */ Property LICENSOR_REGION = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorRegion"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorRegion"); /** * The street address of a person or company that should be contacted to obtain a licence for @@ -948,7 +952,7 @@ * schema. */ Property LICENSOR_STREET_ADDRESS = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorStreetAddress"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorStreetAddress"); /** * The phone number of a person or company that should be contacted to obtain a licence for @@ -958,7 +962,7 @@ * schema. */ Property LICENSOR_TELEPHONE_1 = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorTelephone1"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorTelephone1"); /** * The phone number of a person or company that should be contacted to obtain a licence for @@ -968,7 +972,7 @@ * schema. */ Property LICENSOR_TELEPHONE_2 = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorTelephone2"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorTelephone2"); /** * The URL of a person or company that should be contacted to obtain a licence for @@ -978,7 +982,7 @@ * schema. */ Property LICENSOR_URL = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "LicensorURL"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "LicensorURL"); /** * Age of the youngest model pictured in the image, at the time that the @@ -992,7 +996,7 @@ * schema. */ Property MINOR_MODEL_AGE_DISCLOSURE = Property.internalText( - PREFIX_PLUS + PREFIX_DELIMITER + "MinorModelAgeDisclosure"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "MinorModelAgeDisclosure"); /** * Optional identifier associated with each Model Release. @@ -1001,7 +1005,7 @@ * schema. */ Property MODEL_RELEASE_ID = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "ModelReleaseID"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "ModelReleaseID"); /** * Summarizes the availability and scope of model releases authorizing usage @@ -1015,7 +1019,7 @@ * schema. */ Property MODEL_RELEASE_STATUS = Property.internalText( - PREFIX_PLUS + PREFIX_DELIMITER + "ModelReleaseStatus"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "ModelReleaseStatus"); /** * Optional identifier associated with each Property Release. @@ -1024,7 +1028,7 @@ * schema. */ Property PROPERTY_RELEASE_ID = Property.internalTextBag( - PREFIX_PLUS + PREFIX_DELIMITER + "PropertyReleaseID"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "PropertyReleaseID"); /** * Summarises the availability and scope of property releases authorizing @@ -1037,7 +1041,7 @@ * schema. */ Property PROPERTY_RELEASE_STATUS = Property.internalText( - PREFIX_PLUS + PREFIX_DELIMITER + "PropertyReleaseStatus"); + PREFIX_PLUS + Metadata.NAMESPACE_PREFIX_DELIMITER + "PropertyReleaseStatus"); /** * Contains any necessary copyright notice for claiming the intellectual @@ -1046,13 +1050,13 @@ * property rights. */ Property ARTWORK_OR_OBJECT_DETAIL_COPYRIGHT_NOTICE = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "AOCopyrightNotice"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "AOCopyrightNotice"); /** * Contains the name of the artist who has created artwork or an object in the image. */ Property ARTWORK_OR_OBJECT_DETAIL_CREATOR = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "AOCreator"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "AOCreator"); /** * Designates the date and optionally the time the artwork or object in the @@ -1060,34 +1064,34 @@ * intellectual property rights. */ Property ARTWORK_OR_OBJECT_DETAIL_DATE_CREATED = Property.internalDate( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "AODateCreated"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "AODateCreated"); /** * The organisation or body holding and registering the artwork or object in * the image for inventory purposes. */ Property ARTWORK_OR_OBJECT_DETAIL_SOURCE = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "AOSource"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "AOSource"); /** * The inventory number issued by the organisation or body holding and * registering the artwork or object in the image. */ Property ARTWORK_OR_OBJECT_DETAIL_SOURCE_INVENTORY_NUMBER = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "AOSourceInvNo"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "AOSourceInvNo"); /** * A reference for the artwork or object in the image. */ Property ARTWORK_OR_OBJECT_DETAIL_TITLE = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "AOTitle"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "AOTitle"); /** * Name of the city of a location. This element is at the fourth level of a * top-down geographical hierarchy. */ Property LOCATION_SHOWN_CITY = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationShownCity"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationShownCity"); /** * The ISO code of a country of a location. This element is at the second @@ -1098,14 +1102,14 @@ * scheme as no explicit indication can be provided. */ Property LOCATION_SHOWN_COUNTRY_CODE = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationShownCountryCode"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationShownCountryCode"); /** * The name of a country of a location. This element is at the second level * of a top-down geographical hierarchy. */ Property LOCATION_SHOWN_COUNTRY_NAME = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationShownCountryName"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationShownCountryName"); /** * The name of a subregion of a country - a province or state - of a @@ -1113,7 +1117,7 @@ * hierarchy. */ Property LOCATION_SHOWN_PROVINCE_OR_STATE = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationShownProvinceState"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationShownProvinceState"); /** * Name of a sublocation. This sublocation name could either be the name of @@ -1122,21 +1126,21 @@ * element is at the fifth level of a top-down geographical hierarchy. */ Property LOCATION_SHOWN_SUBLOCATION = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationShownSublocation"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationShownSublocation"); /** * The name of a world region of a location. This element is at the first * (topI) level of a top- down geographical hierarchy. */ Property LOCATION_SHOWN_WORLD_REGION = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationShownWorldRegion"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationShownWorldRegion"); /** * Name of the city of a location. This element is at the fourth level of a * top-down geographical hierarchy. */ Property LOCATION_CREATED_CITY = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationCreatedCity"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedCity"); /** * The ISO code of a country of a location. This element is at the second @@ -1147,14 +1151,14 @@ * scheme as no explicit indication can be provided. */ Property LOCATION_CREATED_COUNTRY_CODE = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationCreatedCountryCode"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedCountryCode"); /** * The name of a country of a location. This element is at the second level * of a top-down geographical hierarchy. */ Property LOCATION_CREATED_COUNTRY_NAME = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationCreatedCountryName"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedCountryName"); /** * The name of a subregion of a country - a province or state - of a @@ -1162,7 +1166,7 @@ * hierarchy. */ Property LOCATION_CREATED_PROVINCE_OR_STATE = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationCreatedProvinceState"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedProvinceState"); /** * Name of a sublocation. This sublocation name could either be the name of @@ -1171,14 +1175,14 @@ * element is at the fifth level of a top-down geographical hierarchy. */ Property LOCATION_CREATED_SUBLOCATION = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationCreatedSublocation"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedSublocation"); /** * The name of a world region of a location. This element is at the first * (topI) level of a top- down geographical hierarchy. */ Property LOCATION_CREATED_WORLD_REGION = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "LocationCreatedWorldRegion"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "LocationCreatedWorldRegion"); /** * A unique identifier created by a registry and applied by the creator of @@ -1186,23 +1190,23 @@ * identifier is linked to a corresponding Registry Organisation Identifier. */ Property REGISTRY_ENTRY_CREATED_ITEM_ID = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "RegItemId"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "RegItemId"); /** * An identifier for the registry which issued the corresponding Registry Image Id. */ Property REGISTRY_ENTRY_CREATED_ORGANISATION_ID = Property.internalText( - PREFIX_IPTC_EXT + PREFIX_DELIMITER + "RegOrgId"); + PREFIX_IPTC_EXT + Metadata.NAMESPACE_PREFIX_DELIMITER + "RegOrgId"); Property[] PROPERTY_GROUP_IPTC_CORE = new Property[] { CITY, COUNTRY, COUNTRY_CODE, - DESCRIPTION_DCPROPERTY, + DESCRIPTION, HEADLINE, INTELLECTUAL_GENRE, - KEYWORDS_DCPROPERTY, + KEYWORDS, PROVINCE_OR_STATE, SCENE_CODE, SUBJECT_CODE, @@ -1211,9 +1215,9 @@ DESCRIPTION_WRITER, INSTRUCTIONS, JOB_ID, - TITLE_DCPROPERTY, + TITLE, COPYRIGHT_NOTICE, - CREATOR_DCPROPERTY, + CREATOR, CREATORS_JOB_TITLE, CREDIT_LINE, RIGHTS_USAGE_TERMS, Index: src/main/java/org/apache/tika/metadata/Photoshop.java =================================================================== --- src/main/java/org/apache/tika/metadata/Photoshop.java (revision 0) +++ src/main/java/org/apache/tika/metadata/Photoshop.java (revision 0) @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * IPTC Metadata Descriptions taken from the IPTC Photo Metadata (July 2010) + * standard. These parts Copyright 2010 International Press Telecommunications + * Council. + */ +package org.apache.tika.metadata; + +/** + * XMP Photoshop metadata schema. + * + * A collection of property constants for the + * Photo Metadata properties defined in the XMP Photoshop + * standard. + * + * @see XMP Photoshop + */ +public interface Photoshop { + + String NAMESPACE_URI_PHOTOSHOP = "http://ns.adobe.com/photoshop/1.0/"; + String PREFIX_PHOTOSHOP = "photoshop"; + + Property AUTHORS_POSITION = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "AuthorsPosition"); + + Property CAPTION_WRITER = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "CaptionWriter"); + + Property CATEGORY = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "Category"); + + Property CITY = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "City"); + + Property COUNTRY = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "Country"); + + Property CREDIT = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "Credit"); + + Property DATE_CREATED = Property.internalDate( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "DateCreated"); + + Property HEADLINE = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "Headline"); + + Property INSTRUCTIONS = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "Instructions"); + + Property SOURCE = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "Source"); + + Property STATE = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "State"); + + Property SUPPLEMENTAL_CATEGORIES = Property.internalTextBag( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "SupplementalCategories"); + + Property TRANSMISSION_REFERENCE = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "TransmissionReference"); + + Property URGENCY = Property.internalText( + PREFIX_PHOTOSHOP + Metadata.NAMESPACE_PREFIX_DELIMITER + "Urgency"); + +} \ No newline at end of file Index: src/main/java/org/apache/tika/metadata/XMPRights.java =================================================================== --- src/main/java/org/apache/tika/metadata/XMPRights.java (revision 0) +++ src/main/java/org/apache/tika/metadata/XMPRights.java (revision 0) @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * IPTC Metadata Descriptions taken from the IPTC Photo Metadata (July 2010) + * standard. These parts Copyright 2010 International Press Telecommunications + * Council. + */ +package org.apache.tika.metadata; + +/** + * XMP Rights management schema. + * + * A collection of property constants for the + * rights management properties defined in the XMP + * standard. + * + * @see XMP Photoshop + */ +public interface XMPRights { + + String NAMESPACE_URI_XMP_RIGHTS = "http://ns.adobe.com/xap/1.0/rights/"; + String PREFIX_XMP_RIGHTS = "xmpRights"; + + Property CERTIFICATE = Property.internalText( + PREFIX_XMP_RIGHTS + Metadata.NAMESPACE_PREFIX_DELIMITER + "Certificate"); + + Property MARKED = Property.internalBoolean( + PREFIX_XMP_RIGHTS + Metadata.NAMESPACE_PREFIX_DELIMITER + "Marked"); + + Property OWNER = Property.internalTextBag( + PREFIX_XMP_RIGHTS + Metadata.NAMESPACE_PREFIX_DELIMITER + "Owner"); + + Property USAGE_TERMS = Property.internalText( + PREFIX_XMP_RIGHTS + Metadata.NAMESPACE_PREFIX_DELIMITER + "UsageTerms"); + + Property WEB_STATEMENT = Property.internalText( + PREFIX_XMP_RIGHTS + Metadata.NAMESPACE_PREFIX_DELIMITER + "WebStatement"); + +} \ No newline at end of file