In the MSDN documentation, I see fragments that look like XSD for the PROPDESC files for things like propertyDescriptionList
attributes. Is the whole schema definition somewhere so I can validate my .propdesc file?
Here's the sample propdesc file from the Windows 7 SDK sample, for what that's worth. The sample defines a custom file type of .recipe.
<?xml version="1.0" encoding="utf-8"?>
<!--
This propdesc file contains the descriptions of Recipe Sample custom properties.
To register/unregister, use the PropertySchema SDK sample, or http://www.codeplex.com/prop.
-->
<schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/windows/2006/propertydescription"
schemaVersion="1.0">
<propertyDescriptionList publisher="Microsoft" product="SampleRecipe">
<propertyDescription name="Microsoft.SampleRecipe.Difficulty" formatID="{1794C9FE-74A9-497f-9C69-B31F03CE7EF9}" propID="100">
<description>This property indicates the preparation difficulty of a recipe.</description>
<searchInfo inInvertedIndex="true" isColumn="true" columnIndexType="OnDisk" mnemonics="RecipeDifficulty"/>
<typeInfo type="String" multipleValues="false" isViewable="true" isQueryable="true"/>
<labelInfo label="Recipe difficulty" invitationText="Specify recipe difficulty" />
<displayInfo displayType="Enumerated" >
<editControl control="DropList"/>
<enumeratedList>
<enum value="Easy" text="Easy" />
<enum value="Medium" text="Medium" />
<enum value="Hard" text="Hard" />
</enumeratedList>
</displayInfo>
</propertyDescription>
</propertyDescriptionList>
</schema>
Update: there's a note at MSDN requiring an xmlns reference to http://schemas.microsoft.com/windows/2006/propertydescription
but that's just a placeholder URL as far as I can tell.
I finally just created an empty xsd file in Visual Studio and started plugging in the various pieces. I got it working well enough, with the exception of missing simple types for
upcase-uuid
andcanonical-name
, which I don't see in the docs. Anyway, I was able to use the XML Plugin in Notepad++ to validate my .propdesc file against this schema, and it found an error for me, so I thought I'd share.