/// <summary>
        /// Print Schema Reference Guide v1.0 Appendix E.3.9 - Page Media Type
        /// </summary>
        public void WritePageMediaTypeFeature(IList <uint> mediaTypes, IList <string> mediaTypeDisplayNames)
        {
            if (mediaTypes.Count > 0 && mediaTypeDisplayNames.Count > 0)
            {
                WriteStartFeature(
                    PrintSchemaNamespaces.StandardKeywordSet, "PageMediaType",
                    PrintSchemaNamespaces.StandardKeywordSet, "PickOne",
                    COMPSTUISR.IDS_CPSUI_MEDIA);
                {
                    for (int i = 0; i < mediaTypes.Count; i++)
                    {
                        string optionLocalName;
                        uint   optionDisplayNameId;
                        string pskFrontCoating;
                        string pskBackCoating;
                        string pskMaterial;

                        bool found = PrintSchemaShim.TryGetMediaTypeOption(
                            mediaTypes[i],
                            out optionLocalName,
                            out optionDisplayNameId,
                            out pskFrontCoating,
                            out pskBackCoating,
                            out pskMaterial
                            );

                        string optionDisplayName;
                        if (found)
                        {
                            optionDisplayName = GetDisplayString(optionDisplayNameId);
                        }
                        else
                        {
                            optionLocalName   = string.Format(CultureInfo.InvariantCulture, "User{0:0000000000}", mediaTypes[i]);
                            optionDisplayName = (i < mediaTypeDisplayNames.Count) ? mediaTypeDisplayNames[i] : null;
                            pskFrontCoating   = null;
                            pskBackCoating    = null;
                            pskMaterial       = null;
                        }

                        WriteStartOption(PrintSchemaNamespaces.StandardKeywordSet, optionLocalName, optionDisplayName, "None");
                        {
                            if (pskFrontCoating != null)
                            {
                                WriteStartScoredProperty(PrintSchemaNamespaces.StandardKeywordSet, "FrontCoating");
                                {
                                    WriteQNameValue(PrintSchemaNamespaces.StandardKeywordSet, pskFrontCoating);
                                }
                                WriteEndScoredProperty();
                            }

                            if (pskBackCoating != null)
                            {
                                WriteStartScoredProperty(PrintSchemaNamespaces.StandardKeywordSet, "BackCoating");
                                {
                                    WriteQNameValue(PrintSchemaNamespaces.StandardKeywordSet, pskBackCoating);
                                }
                                WriteEndScoredProperty();
                            }

                            if (pskMaterial != null)
                            {
                                WriteStartScoredProperty(PrintSchemaNamespaces.StandardKeywordSet, "Material");
                                {
                                    WriteQNameValue(PrintSchemaNamespaces.StandardKeywordSet, pskMaterial);
                                }
                                WriteEndScoredProperty();
                            }
                        }
                        WriteEndOption();
                    }
                }
                WriteEndFeature();
            }
        }