<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>org.apache.sis.metadata.iso.citation (Apache SIS 1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2019-09-20">
<meta name="keywords" content="org.apache.sis.metadata.iso.citation package">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../sis.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.apache.sis.metadata.iso.citation (Apache SIS 1.0 API)";
        }
    }
    catch(err) {
    }
//-->
var pathtoroot = "../../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.sis.metadata.iso.citation</h1>
</div>
<div class="contentContainer">
<section role="region"><a id="package.description">
<!--   -->
</a>
<div class="block">Reference to the data or service (citation, responsible party, contact information).
 An explanation for this package is provided in the <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/package-summary.html?is-external=true" class="externalLink">OpenGIS® javadoc</a>.
 The remaining discussion on this page is specific to the SIS implementation.

 <div class="section">Overview</div>
 For a global overview of metadata in SIS, see the <a href="../../package-summary.html"><code>org​.apache​.sis​.metadata</code></a> package javadoc.

 <table class="sis">
 <caption>Package overview</caption>
 <tr>
   <th>Class hierarchy</th>
   <th class="sep">Aggregation hierarchy</th>
 </tr><tr><td style="width: 50%; white-space: nowrap">
 <a href="../ISOMetadata.html" title="class in org.apache.sis.metadata.iso">ISO 19115 metadata</a><br>
 <code> ├─</code> <a href="DefaultCitation.html" title="class in org.apache.sis.metadata.iso.citation">Citation</a><br>
 <code> ├─</code> <a href="DefaultCitationDate.html" title="class in org.apache.sis.metadata.iso.citation">Citation date</a><br>
 <code> ├─</code> <a href="DefaultResponsibility.html" title="class in org.apache.sis.metadata.iso.citation">Responsibility</a><br>
 <code> ├─</code> <a href="AbstractParty.html" title="class in org.apache.sis.metadata.iso.citation">Party</a><br>
 <code> │   ├─</code> <a href="DefaultIndividual.html" title="class in org.apache.sis.metadata.iso.citation">Individual</a><br>
 <code> │   └─</code> <a href="DefaultOrganisation.html" title="class in org.apache.sis.metadata.iso.citation">Organisation</a><br>
 <code> ├─</code> <a href="DefaultContact.html" title="class in org.apache.sis.metadata.iso.citation">Contact</a><br>
 <code> ├─</code> <a href="DefaultTelephone.html" title="class in org.apache.sis.metadata.iso.citation">Telephone</a><br>
 <code> ├─</code> <a href="DefaultAddress.html" title="class in org.apache.sis.metadata.iso.citation">Address</a><br>
 <code> ├─</code> <a href="DefaultOnlineResource.html" title="class in org.apache.sis.metadata.iso.citation">Online resource</a><br>
 <code> └─</code> <a href="DefaultSeries.html" title="class in org.apache.sis.metadata.iso.citation">Series</a><br>
 <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/util/CodeList.html?is-external=true" title="class or interface in org.opengis.util" class="externalLink">Code list</a><br>
 <code> ├─</code> <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/DateType.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Date type</a><br>
 <code> ├─</code> <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/OnLineFunction.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Online function</a><br>
 <code> ├─</code> <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/PresentationForm.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Presentation form</a><br>
 <code> └─</code> <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/Role.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Role</a><br>
 </td><td class="sep" style="width: 50%; white-space: nowrap">
                         <a href="DefaultCitation.html" title="class in org.apache.sis.metadata.iso.citation">Citation</a><br>
 <code> ├─</code>             <a href="DefaultCitationDate.html" title="class in org.apache.sis.metadata.iso.citation">Citation date</a><br>
 <code> │   └─</code>         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/DateType.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Date type</a> «code list»<br>
 <code> ├─</code>             <a href="DefaultResponsibility.html" title="class in org.apache.sis.metadata.iso.citation">Responsibility</a><br>
 <code> │   ├─</code>         <a href="AbstractParty.html" title="class in org.apache.sis.metadata.iso.citation">Party</a><br>
 <code> │   │   └─</code>     <a href="DefaultContact.html" title="class in org.apache.sis.metadata.iso.citation">Contact</a><br>
 <code> │   │       ├─</code> <a href="DefaultTelephone.html" title="class in org.apache.sis.metadata.iso.citation">Telephone</a><br>
 <code> │   │       ├─</code> <a href="DefaultAddress.html" title="class in org.apache.sis.metadata.iso.citation">Address</a><br>
 <code> │   │       └─</code> <a href="DefaultOnlineResource.html" title="class in org.apache.sis.metadata.iso.citation">Online resource</a><br>
 <code> │   │           └─</code> <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/OnLineFunction.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Online function</a> «code list»<br>
 <code> │   └─</code>         <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/Role.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Role</a> «code list»<br>
 <code> ├─</code>             <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/PresentationForm.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">Presentation form</a> «code list»<br>
 <code> └─</code>             <a href="DefaultSeries.html" title="class in org.apache.sis.metadata.iso.citation">Series</a><br>
 </td></tr></table>

 <div class="section">Unified identifiers view</div>
 Apache SIS provides a unified view of all metadata identifiers. This view includes the citation
 <a href="DefaultCitation.html#getISBN()">ISBN</a> and
 <a href="DefaultCitation.html#getISSN()">ISSN</a> codes,
 except at XML marshalling time (for ISO 19115-3 compliance).
 See <a href="../../../xml/IdentifierMap.html" title="interface in org.apache.sis.xml"><code>Identifier­Map</code></a> for more information.

 <div class="section">Null values, nil objects and collections</div>
 All constructors and setter methods accept <code>null</code> arguments.
 A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
 Alternatively, users can specify why a metadata element is missing by providing a value created by
 <a href="../../../xml/NilReason.html#createNilObject(java.lang.Class)"><code>Nil­Reason​.create­Nil­Object(Class)</code></a>.

 <p>Unless otherwise noted in the Javadoc, all getter methods may return an empty collection,
 an empty array or <code>null</code> if the type is neither a collection or an array.
 Note that non-null values may be <a href="../../../xml/NilObject.html" title="interface in org.apache.sis.xml"><code>Nil­Object</code></a>s.</p>

 <p>Unless the metadata object has been marked as unmodifiable and unless otherwise noted in the Javadoc,
 all collections returned by getter methods are <cite>live</cite>: adding new elements in the collection
 modify directly the underlying metadata object.</p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.3</dd>

<p><font size="-1">Defined in the <code>sis-metadata</code> module</font></p>
</dl>
</section>
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="AbstractParty.html" title="class in org.apache.sis.metadata.iso.citation">AbstractParty</a></th>
<td class="colLast">
<div class="block">Information about the individual and / or organization of the party.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Citations.html" title="class in org.apache.sis.metadata.iso.citation">Citations</a></th>
<td class="colLast">
<div class="block">A set of pre-defined constants and static methods working on <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/metadata/citation/Citation.html?is-external=true" title="class or interface in org.opengis.metadata.citation" class="externalLink">citations</a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultAddress.html" title="class in org.apache.sis.metadata.iso.citation">DefaultAddress</a></th>
<td class="colLast">
<div class="block">Location of the responsible individual or organization.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultCitation.html" title="class in org.apache.sis.metadata.iso.citation">DefaultCitation</a></th>
<td class="colLast">
<div class="block">Standardized resource reference.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultCitationDate.html" title="class in org.apache.sis.metadata.iso.citation">DefaultCitationDate</a></th>
<td class="colLast">
<div class="block">Reference date and event used to describe it.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultContact.html" title="class in org.apache.sis.metadata.iso.citation">DefaultContact</a></th>
<td class="colLast">
<div class="block">Information required to enable contact with the responsible person and/or organization.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultIndividual.html" title="class in org.apache.sis.metadata.iso.citation">DefaultIndividual</a></th>
<td class="colLast">
<div class="block">Information about the party if the party is an individual.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultOnlineResource.html" title="class in org.apache.sis.metadata.iso.citation">DefaultOnlineResource</a></th>
<td class="colLast">
<div class="block">Information about on-line sources from which the dataset, specification, or
 community profile name and extended metadata elements can be obtained.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultOrganisation.html" title="class in org.apache.sis.metadata.iso.citation">DefaultOrganisation</a></th>
<td class="colLast">
<div class="block">Information about the party if the party is an organization.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultResponsibility.html" title="class in org.apache.sis.metadata.iso.citation">DefaultResponsibility</a></th>
<td class="colLast">
<div class="block">Information about the party and their role.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultResponsibleParty.html" title="class in org.apache.sis.metadata.iso.citation">DefaultResponsibleParty</a></th>
<td class="colLast">
<div class="block">Identification of, and means of communication with, person(s) and
 organizations associated with the dataset.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="DefaultSeries.html" title="class in org.apache.sis.metadata.iso.citation">DefaultSeries</a></th>
<td class="colLast">
<div class="block">Information about the series, or aggregate dataset, to which a dataset belongs.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="DefaultTelephone.html" title="class in org.apache.sis.metadata.iso.citation">DefaultTelephone</a></th>
<td class="colLast">
<div class="block">Telephone numbers for contacting the responsible individual or organization.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2010&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
