# Remodeling DCAM and DSP
## DSP
Example:
<pre>
<?xml version="1.0" ?>
# Tap
<DescriptionSetTemplate xmlns="http://dublincore.org/xml/dc-dsp/2008/03/31">
# TAP shape
# note that it includes cardinality, plus standalone
<DescriptionTemplate ID="document" minOccurs="1" maxOccurs="1" standalone="yes">
# not sure where this fits in to TAP; but seems to be a document type of the shape
<ResourceClass>http://purl.org/dc/terms/Text</ResourceClass>
# this is TAP statement constraint although it seems wrong to have type=nonliteral on the statementTemplate rather than constraining the property
<StatementTemplate minOccurs="1" type="nonliteral">
# property itself is same as TAP
<Property>http://purl.org/dc/terms/creator</Property>
# Is this a valueShape? And what's the difference between a statement template and a description template?
<NonLiteralConstraint descriptionTemplateID="person">
# ??
<ValueURIOccurrence>disallowed</ValueURIOccurrence>
# ?? How could a ves occur independent of the property/statement?
<VocabularyEncodingSchemeOccurrence>disallowed</VocabularyEncodingSchemeOccurrence>
## ditto
<ValueStringConstraint maxOccur="0"/>
</NonLiteralConstraint>
</StatementTemplate>
</DescriptionTemplate>
# this seems to be shape2
<DescriptionTemplate ID="person" standalone="no">
# this would be a rdf:type declaration
<ResourceClass>http://xmlns.com/foaf/0.1/Person</ResourceClass>
# again, statement has type where TAP would anchor datatype to property
<StatementTemplate minOccurs="1" maxOccurs="1" type="literal">
<Property>http://xmlns.com/foaf/0.1/name</Property>
<LiteralConstraint>
# use of disallowed - saying what isn't valid, something we don't do in TAP
<LanguageOccurrence>disallowed</LanguageOccurrence>
</LiteralConstraint>
</StatementTemplate>
</DescriptionTemplate>
</DescriptionSetTemplate>
</pre>