Skip to content

Commit

Permalink
Finished changes for vCard 4.0 support. Closes #8.
Browse files Browse the repository at this point in the history
  • Loading branch information
EWSoftware committed Jan 18, 2020
1 parent c9e6f5c commit f5d41a5
Show file tree
Hide file tree
Showing 19 changed files with 376 additions and 52 deletions.
170 changes: 164 additions & 6 deletions Doc/Content/PDIRoadMap/VCardClasses.aml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,31 @@ if the value location is a URI.</para>
be more than one.</para>
</entry>
</row>
<row>
<entry>
<para>
<codeInline>ANNIVERSARY</codeInline>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Objects.VCard.Anniversary</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">T:EWSoftware.PDI.Properties.AnniversaryProperty</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.BaseDateTimeProperty.DateTimeValue</codeEntityReference>
</para>
</entry>
<entry>
<para>vCard 4.0 only.</para>
</entry>
</row>
<row>
<entry>
<para>
Expand Down Expand Up @@ -152,7 +177,7 @@ be more than one.</para>
and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.CategoriesProperty.CategoriesString</codeEntityReference></para>
</entry>
<entry>
<para>vCard 3.0 only.</para>
<para>vCard 3.0 and 4.0 only.</para>
</entry>
</row>
<row>
Expand Down Expand Up @@ -180,6 +205,33 @@ and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.Categor
<para>vCard 3.0 only.</para>
</entry>
</row>
<row>
<entry>
<para>
<codeInline>CLIENTPIDMAP</codeInline>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Objects.VCard.ClientPidMaps</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">T:EWSoftware.PDI.Properties.ClientPidMapProperty</codeEntityReference>
and <codeEntityReference qualifyHint="false">T:EWSoftware.PDI.Properties.ClientPidMapPropertyCollection</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.ClientPidMapProperty.Id</codeEntityReference>
and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.ClientPidMapProperty.Uri</codeEntityReference>
</para>
</entry>
<entry>
<para>vCard 4.0 only.</para>
</entry>
</row>
<row>
<entry>
<para>
Expand Down Expand Up @@ -228,6 +280,32 @@ and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.BasePro
<para>&#160;</para>
</entry>
</row>
<row>
<entry>
<para>
<codeInline>GENDER</codeInline>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Objects.VCard.Gender</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">T:EWSoftware.PDI.Properties.GenderProperty</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.GenderProperty.Sex</codeEntityReference>
and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.GenderProperty.GenderIdentity</codeEntityReference>
</para>
</entry>
<entry>
<para>vCard 4.0 only.</para>
</entry>
</row>
<row>
<entry>
<para>
Expand Down Expand Up @@ -280,6 +358,32 @@ key. If not inline, the <codeInline>Value</codeInline> property refers to somet
be found.</para>
</entry>
</row>
<row>
<entry>
<para>
<codeInline>KIND</codeInline>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Objects.VCard.Kind</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">T:EWSoftware.PDI.Properties.KindProperty</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.KindProperty.CardKind</codeEntityReference>
and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.KindProperty.OtherKind</codeEntityReference>
</para>
</entry>
<entry>
<para>vCard 4.0 only.</para>
</entry>
</row>
<row>
<entry>
<para>
Expand Down Expand Up @@ -354,6 +458,32 @@ can be found.</para>
<para>&#160;</para>
</entry>
</row>
<row>
<entry>
<para>
<codeInline>MEMBER</codeInline>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Objects.VCard.Members</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">T:EWSoftware.PDI.Properties.MemberProperty</codeEntityReference>
and <codeEntityReference qualifyHint="false">T:EWSoftware.PDI.Properties.MemberPropertyCollection</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.BaseProperty.Value</codeEntityReference>
</para>
</entry>
<entry>
<para>vCard 4.0 only.</para>
</entry>
</row>
<row>
<entry>
<para>
Expand Down Expand Up @@ -429,7 +559,7 @@ and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.NamePro
and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.NicknameProperty.NicknamesString</codeEntityReference></para>
</entry>
<entry>
<para>vCard 3.0 only.</para>
<para>vCard 3.0 and 4.0 only.</para>
</entry>
</row>
<row>
Expand Down Expand Up @@ -529,7 +659,7 @@ can be found.</para>
and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.ProductIdProperty.IsRegistered</codeEntityReference></para>
</entry>
<entry>
<para>vCard 3.0 only.</para>
<para>vCard 3.0 and 4.0 only.</para>
</entry>
</row>
<row>
Expand All @@ -550,7 +680,34 @@ and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.Product
<para>&#160;</para>
</entry>
<entry>
<para>vCard 3.0 only.</para>
<para>vCard 3.0 and 4.0 only.</para>
</entry>
</row>
<row>
<entry>
<para>
<codeInline>RELATED</codeInline>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Objects.VCard.Related</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">T:EWSoftware.PDI.Properties.RelatedProperty</codeEntityReference>
and <codeEntityReference qualifyHint="false">T:EWSoftware.PDI.Properties.RelatedPropertyCollection</codeEntityReference>
</para>
</entry>
<entry>
<para>
<codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.RelatedProperty.RelatedTypes</codeEntityReference>
and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.RelatedProperty.PreferredOrder</codeEntityReference>
</para>
</entry>
<entry>
<para>vCard 4.0 only.</para>
</entry>
</row>
<row>
Expand Down Expand Up @@ -677,7 +834,7 @@ can be found.</para>
and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.BaseProperty.Value</codeEntityReference></para>
</entry>
<entry>
<para>vCard 3.0 only.</para>
<para>vCard 3.0 and 4.0 only.</para>
</entry>
</row>
<row>
Expand Down Expand Up @@ -821,7 +978,8 @@ and <codeEntityReference qualifyHint="false">P:EWSoftware.PDI.Properties.TimeZon
<para>&#160;</para>
</entry>
<entry>
<para>Version will be <codeInline>vCard21</codeInline> or <codeInline>vCard30</codeInline>.</para>
<para>Version will be <codeInline>vCard21</codeInline>, <codeInline>vCard30</codeInline>, or
<codeInline>vCard40</codeInline>.</para>
</entry>
</row>
<row>
Expand Down
49 changes: 48 additions & 1 deletion Doc/Content/UsageNotes/SpecCompliance.aml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<introduction>
<para>To the best of my knowledge, all specifications are fully implemented except for the following noted
limitations. The four specifications contain a large amount of information and it is possible that I may have
limitations. The five specifications contain a large amount of information and it is possible that I may have
missed something. If you do find something that is not implemented or is not correct, please let me know and I
will do my best to correct the problem.</para>
</introduction>
Expand All @@ -25,6 +25,53 @@ the inline decoded binary data but it is up to you to convert the byte array int
an image, sound, digital certificate, file, etc. The demo applications provide some examples of this.</para>
</definition>

<definedTerm>vCard 4.0</definedTerm>
<definition>
<para>Support for RFC 6350 is only partially implemented. The following items are not supported.
They may be addressed in future releases as the need arises:</para>

<list class="bullet">
<listItem>
<para>The <codeInline>ALTID</codeInline> and <codeInline>LANGUAGE</codeInline> parameters are not
supported. The introduction of these parameters significantly changes the cardinality of many properties which
would require reimplementing both the vCard parser and the vCard object itself. As such, these parameters will
be ignored and will be added to the custom parameter collection on any property on which they appear. If
multiple vCard properties of the same type are encountered due to the use of these parameters, only the value
from the last property instance seen will be used. If the vCard is subsequently saved, the other properties
instances of the same type will be lost.</para>
</listItem>

<listItem>
<para>For similar reasons, the <codeInline>PREF</codeInline> and <codeInline>TYPE</codeInline>
parameters on the <codeInline>CATEGORIES</codeInline>, <codeInline>FN</codeInline>, <codeInline>GEO</codeInline>,
<codeInline>KEY</codeInline>, <codeInline>LOGO</codeInline>, <codeInline>NICKNAME</codeInline>,
<codeInline>ORG</codeInline>, <codeInline>PHOTO</codeInline>, <codeInline>ROLE</codeInline>, <codeInline>SOUND</codeInline>,
<codeInline>SOURCE</codeInline>, <codeInline>TITLE</codeInline>, <codeInline>TZ</codeInline>, and <codeInline>URL</codeInline>
properties are not supported either. As above, these will pass through as custom properties and only the last
property instance seen will be used.</para>
</listItem>

<listItem>
<para>The <codeInline>MEDIATYPE</codeInline> parameter is ignored on properties that support it.
It will be passed through in the custom parameters.</para>
</listItem>

<listItem>
<para>The <codeInline>CALADRURI</codeInline>, <codeInline>CALURI</codeInline>, <codeInline>FBURL</codeInline>,
<codeInline>IMPP</codeInline>, <codeInline>LANG</codeInline>, and <codeInline>XML</codeInline> properties are not
handled. These will be passed through in the custom properties collection. Support will be added for these
later if there is a need for them.</para>
</listItem>

</list>

<para>The vCard 4.0 specification states that inline vCard values such as on the
<codeInline>AGENT</codeInline> property are no longer supported and does not include any documentation for the
property at all. However, since other non-inline types are valid in the prior specifications and the 4.0
specification does not address them at all, the <codeInline>AGENT</codeInline> property will function as it did
in the prior specifications including support for inline vCard values.</para>
</definition>

<definedTerm>vCalendar 1.0 and iCalendar 2.0</definedTerm>
<definition>
<para>Recurrence rules in vCalendar 1.0 basic format are supported. The vCalendar 1.0 extended
Expand Down
5 changes: 5 additions & 0 deletions Doc/Content/VersionHistory/VersionHistory.aml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ Data Interchange (PDI) Library </legacyBold> over the life of the project.</para
<para>Select a version below to see a description of its changes.</para>

<list class="bullet">
<listItem>
<para>
<link xlink:href="42acd77f-8657-45ca-a71c-14fa093e43ed" />
</para>
</listItem>
<listItem>
<para>
<link xlink:href="76059656-b2b1-4b89-8ba2-af4aa8aaebb6" />
Expand Down
File renamed without changes.

0 comments on commit f5d41a5

Please sign in to comment.