<?xml version="1.0"?> <!-- SPDX-FileCopyrightText: 2024 Lady <https://www.ladys.computer/about/#lady> SPDX-License-Identifier: CC0-1.0 --> <!DOCTYPE Class SYSTEM "../../DTD"> <Class> <label xml:lang="en">Content</label> <comment xml:lang="en"> <p> A thing which represents a specific representation of an information resource: that conveyed by its <ref target="awol:body">body</ref> or by its <ref target="awol:src">source</ref>. </p> <p> <ptr target="(AWOL)"/> remarks that this class encompasses things similar to “what one can get from a H·T·T·P connection”, in that it has a body as well as other associated metadata (provided by its other properties). Providing a literal body, rather than a source, is strongly preferred. </p> <p> The <ref target="awol:type">media type</ref> of the body may be provided, regardless of whether the body is provided literally or via a source. However, there are restrictions on literal bodies :— </p> <list> <item> <p> If the media type ends in <code>/xml</code> or <code>+xml</code> (case‐insensitively), then the literal body must not be a <resource name="rdf:PlainLiteral"/>. </p> </item> <item> <p> If the media type is present, but does not end in <code>/xml</code> or <code>+xml</code> (case‐insensitively), then the literal body must not be a <resource name="rdf:XMLLiteral"/>. </p> </item> <item> <p> If the body is a language‐tagged string, then there must not be a media type. </p> </item> </list> </comment> <isDefinedBy> <SpecificResource source="(AWOL)" fragment="Content"/> </isDefinedBy> <equivalentClass> <Class> <unionOf> <Class> <intersectionOf> <Restriction> <onProperty> <resource name="awol:body"/> </onProperty> <cardinality>1</cardinality> </Restriction> <Restriction> <onProperty> <resource name="awol:src"/> </onProperty> <cardinality>0</cardinality> </Restriction> </intersectionOf> </Class> <Class> <intersectionOf> <Restriction> <onProperty> <resource name="awol:body"/> </onProperty> <cardinality>0</cardinality> </Restriction> <Restriction> <onProperty> <resource name="awol:src"/> </onProperty> <cardinality>1</cardinality> </Restriction> </intersectionOf> </Class> </unionOf> </Class> </equivalentClass> <subClassOf> <Class> <unionOf> <Class> <intersectionOf> <Restriction> <onProperty> <resource name="awol:type"/> </onProperty> <allValuesFrom> <Datatype> <onDatatype> <resource name="xsd:string"/> </onDatatype> <withRestrictions> <pattern>.*[+/][Xx][Mm][Ll]</pattern> </withRestrictions> </Datatype> </allValuesFrom> </Restriction> <Restriction> <onProperty> <resource name="awol:body"/> </onProperty> <qualifiedCardinality>0</qualifiedCardinality> <onDataRange> <resource name="rdf:PlainLiteral"/> </onDataRange> </Restriction> </intersectionOf> </Class> <Class> <intersectionOf> <Restriction> <onProperty> <resource name="awol:type"/> </onProperty> <qualifiedCardinality>0</qualifiedCardinality> <onDataRange> <Datatype> <onDatatype> <resource name="xsd:string"/> </onDatatype> <withRestrictions> <pattern>.*[+/][Xx][Mm][Ll]</pattern> </withRestrictions> </Datatype> </onDataRange> </Restriction> <Restriction> <onProperty> <resource name="awol:body"/> </onProperty> <allValuesFrom> <Datatype> <unionOf> <resource name="xsd:string"/> <resource name="xsd:base64Binary"/> </unionOf> </Datatype> </allValuesFrom> </Restriction> </intersectionOf> </Class> <Restriction> <onProperty> <resource name="awol:type"/> </onProperty> <cardinality>0</cardinality> </Restriction> </unionOf> </Class> </subClassOf> </Class>