Module jonix.onix2

Class Subject

java.lang.Object
com.tectonica.jonix.onix2.Subject
All Implemented Interfaces:
OnixComposite, OnixComposite.OnixDataComposite<JonixSubject>, OnixTag, Serializable

public class Subject extends Object implements OnixComposite.OnixDataComposite<JonixSubject>, Serializable

Additional subject composite

An optional and repeatable group of data elements which together describe a subject classification or subject heading which is additional to the BISAC, BIC or other main subject category.

Reference name <Subject>
Short tag <subject>

This tag may be included in the following composites:

Possible placements within ONIX message:

See Also:
  • Field Details

  • Constructor Details

    • Subject

      public Subject()
    • Subject

      public Subject(Element element)
  • Method Details

    • _initialize

      public void _initialize()
      Description copied from interface: OnixComposite
      This is an internal API. Since Jonix 8.0, composite objects are being populated lazily. This method initiates the population process, and is invoked internally by the accessor APIs of the composites
      Specified by:
      _initialize in interface OnixComposite
    • exists

      public boolean exists()
      Description copied from interface: OnixTag
      indicates whether this tag exists in the ONIX record
      Specified by:
      exists in interface OnixTag
      Returns:
      whether this tag (<Subject> or <subject>) is explicitly provided in the ONIX XML
    • ifExists

      public void ifExists(Consumer<Subject> action)
    • getXmlElement

      public Element getXmlElement()
      Description copied from interface: OnixComposite
      For advanced use-cases only.
      Specified by:
      getXmlElement in interface OnixComposite
      Returns:
      native representation of the XML element underlying to this tag
    • subjectSchemeIdentifier

      public SubjectSchemeIdentifier subjectSchemeIdentifier()

      An ONIX code which identifies the subject scheme which is used in an occurrence of the <Subject> composite. Mandatory in each occurrence of the composite, and non-repeating.

      When the scheme listed in the code list display is annotated “Code”, use the associated <SubjectCode> element to carry the value (if so required, the <SubjectHeadingText> element can be used simultaneously to carry the text equivalent of the code). When the scheme is annotated “Text”, use the <SubjectHeadingText> element to carry the text of the subject heading.

      Scheme code 23 may be used for a publisher’s own subject category code, by agreement with trading partners to whom product information is sent. Scheme code 24, with a name in the <SubjectSchemeName> element, may be used to identify a proprietary scheme, eg one used by a bibliographic agency or wholesaler.

      Jonix-Comment: this field is required
    • subjectCode

      public SubjectCode subjectCode()

      A subject class or category code from the scheme specified in the <SubjectSchemeIdentifier> element. Either <SubjectCode> or <SubjectHeadingText> or both must be present in each occurrence of the <Subject> composite. Non-repeating.

      Jonix-Comment: this field is required
    • subjectSchemeName

      public SubjectSchemeName subjectSchemeName()

      A name identifying a proprietary subject scheme when <SubjectSchemeIdentifier> is coded “24”. Optional and non-repeating.

      Jonix-Comment: this field is optional
    • subjectSchemeVersion

      public SubjectSchemeVersion subjectSchemeVersion()

      A number which identifies a version or edition of the subject scheme specified in the associated <SubjectSchemeIdentifier> element. Optional and non-repeating.

      Jonix-Comment: this field is optional
    • subjectHeadingText

      public SubjectHeadingText subjectHeadingText()

      The text of a subject heading taken from the scheme specified in the <SubjectSchemeIdentifier> element, or of free language keywords if the scheme is specified as “keywords”; or the text equivalent to the <SubjectCode> value, if both code and text are sent. Either <SubjectCode> or <SubjectHeadingText> or both must be present in each occurrence of the <Subject> composite. Non-repeating.

      Jonix-Comment: this field is optional
    • asStruct

      public JonixSubject asStruct()
      Specified by:
      asStruct in interface OnixComposite.OnixDataComposite<JonixSubject>