<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
<X3D profile='Immersive' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-4.0.xsd'>
  <head>
    <!-- of note is that name values for these document meta terms are defined by Dublin Core -->
    <meta content='XmpMetadataEmbedded.x3d' name='title'/>
    <meta content='Simple XMP sidecar example: Hello XMP metadata!' name='description'/>
    <meta content='29 April 2021' name='created'/>
    <meta content='15 July 2025' name='modified'/>
    <meta content='Don Brutzman, Vince Marchetti, Jakub Flotynski, Dick Puk' name='creator'/>
    <meta content='Source model assumes default containerField=value for X3D4 Metadata nodes, specification resolution needed' name='warning'/>
    <meta content='Summary presentation XmpMetadataSupportX3D.pptx' name='reference'/>
    <meta content='XmpMetadataSidecar.xml' name='reference'/>
    <meta content='XmpMetadataSidecar.rdf' name='reference'/>
    <meta content='XmpMetadataSidecar.ttl' name='reference'/>
    <meta content='Protege https://protege.stanford.edu' name='generator'/>
    <meta content='XmpMetadataEmbeddedX3dComparison.png' name='Image'/>
    <meta content='https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#MetadataSet' name='reference'/>
    <!-- Wikipedia example RDF XML plus Protege conversion to Turtle .ttl -->
    <meta content='XmpMetadataExampleWikipedia.xml' name='reference'/>
    <meta content='XmpMetadataExampleWikipedia.ttl' name='reference'/>
    <meta content='https://wwwimages2.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP%20SDK%20Release%20cc-2016-08/XMPSpecificationPart1.pdf' name='reference'/>
    <meta content='Once pattern OK, write conversion stylesheets XmpToX3dMetadata.xslt and X3dMetadataToXmp.xslt' name='TODO'/>
    <meta content='X3D support for xml:lang attribute not provided in X3D XML Schema, instead use MetadataString as best practice.' name='info'/>
    <meta content='Wikipedia XMP https://en.wikipedia.org/wiki/Extensible_Metadata_Platform' name='reference'/>
    <meta content='Wikipedia Metadata https://en.wikipedia.org/wiki/Metadata' name='reference'/>
    <meta content='https://en.wikipedia.org/wiki/Sidecar' name='reference'/>
    <meta content='https://experienceleague.adobe.com/docs/experience-manager-64/assets/administer/xmp.html' name='reference'/>
    <meta content='https://en.wikipedia.org/wiki/Ontology_for_Media_Resources' name='reference'/>
    <meta content='https://en.wikipedia.org/wiki/Multimedia_Web_Ontology_Language' name='reference'/>
    <meta content='W3C Ontology for Media Resources 1.0 https://www.w3.org/TR/mediaont-10' name='reference'/>
    <meta content='ISO XMP ISO 16684-1:2019Part 1: Data model, serialization and core properties https://www.iso.org/standard/75163.html' name='reference'/>
    <meta content='ISO XMP 16684-2:2014 Part 2: Description of XMP schemas using RELAX NG https://www.iso.org/standard/57422.html' name='reference'/>
    <meta content='Adobe XMP https://www.adobe.com/devnet/xmp.html' name='reference'/>
    <meta content='Adobe XMP https://www.adobe.com/products/xmp.html' name='reference'/>
    <meta content='ExifTool XMP Tags https://exiftool.org/TagNames/XMP.html' name='reference'/>
    <meta content='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter15Metadata/XmpMetadataEmbedded.x3d' name='identifier'/>
    <meta content='https://www.web3d.org/x3d/content/examples/license.html' name='license'/>
    <meta content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
  </head>
  <Scene>
    <!-- Design considerations: -->
    <!-- a. avoid containerField='metadata' and containerField='value' wherever possible, note X3D4 XML schema revision is needed -->
    <!-- b. literal XMP values wherever possible, lossless -->
    <!-- c. avoid nested quotes/apostrophes by using MetadataString name/value pairs -->
    <!-- d. map XMP parent elements to MetadataSet, otherwise have typed Metadata* values wherever possible -->
    <!-- e. push shared properties as high as possible in MetadataSet hierarchy, since they apply to all children -->
    <!-- f. assumptions: unquoted MFString values equal a single SFString array element, default Metadata* node containerField='value' -->
    <!-- g. MetadataSet nodes contain other Metadata* nodes as the /value/ field, thus producing tree-like structured metadata information -->
    <WorldInfo title='XmpMetadataEmbedded.x3d'/>
    <Background skyColor='0 0.439216 0.760784'/>
    <!-- Sample (partial) XMP sidecar file XmpMetadataSidecar.xml generated manually by Vince Marchetti as part of the STEP Geometry Services Pilot Project -->
    <MetadataSet containerField='metadata' name='rdf:RDF' reference='TODO refer to XMP ISO specification document'>
      <MetadataSet name='namespaces'>
        <MetadataString name='xmlns:rdf' value='http://www.w3.org/1999/02/22-rdf-syntax-ns#'/>
        <MetadataString name='xmlns:dc' value='http://purl.org/dc/elements/1.1/'/>
        <MetadataString name='xmlns:xmp' value='http://ns.adobe.com/xap/1.0/'/>
      </MetadataSet>
      <MetadataSet name='rdf:Description'>
        <MetadataString name='rdf:about' value='https://kshell.com/sgs/example_uri_0001/'/>
        <MetadataSet name='dc:description'>
          <MetadataSet name='rdf:Alt'>
            <MetadataString name='rdf:li' value='VRML visualization'>
              <!-- discouraging direct use of xml:lang='en' as an attribute, since that is legal XML but invalid X3D -->
              <MetadataString containerField='metadata' name='xml:lang' reference='prefer using MetadataString to indicate xml:lang values' value='en'/>
            </MetadataString>
          </MetadataSet>
        </MetadataSet>
        <MetadataString name='dc:format' value='model/x3d-vrml'/>
        <MetadataString name='dc:rights' reference='https://www.dublincore.org/specifications/dublin-core/dcmi-terms/terms/rights/' value='"open source"'/>
        <MetadataSet name='dc:title'>
          <MetadataSet name='rdf:Alt'>
            <MetadataString name='rdf:li' reference='xml:lang=&apos;en&apos;' value='l-bracket_20120725.134815'>
              <MetadataString containerField='metadata' name='xml:lang' value='en'/>
            </MetadataString>
            <MetadataString name='rdf:li' reference='xml:lang=&apos;gr&apos;' value='aristsirra-bracket_20120725.134815'>
              <MetadataString containerField='metadata' name='xml:lang' reference='prefer using MetadataString to indicate xml:lang values' value='en'/>
            </MetadataString>
          </MetadataSet>
          <MetadataSet name='dc:creator'>
            <MetadataSet name='rdf:Seq'>
              <MetadataString name='rdf:li' value='vmarchetti@kshell.com'/>
            </MetadataSet>
          </MetadataSet>
          <MetadataString name='xmp:CreateDate' value='10 February 2021'/>
        </MetadataSet>
      </MetadataSet>
    </MetadataSet>
    <Viewpoint description='View scene source to see metadata examples' position='0 0 9'/>
    <Anchor description='Load scene index page' parameter='"target=_blank"' url='"XmpMetadataEmbeddedIndex.html" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter15Metadata/XmpMetadataEmbeddedIndex.html"'>
      <Shape>
        <Text string='"View scene source" "to see" "XmpMetadataEmbedded" "example"'>
          <FontStyle justify='"MIDDLE" "MIDDLE"'/>
        </Text>
        <Appearance>
          <Material diffuseColor='1 0.992157 0.039216'/>
        </Appearance>
      </Shape>
    </Anchor>
  </Scene>
</X3D>