A while ago I ran into an issue where I was unable to successfully build a new SharePoint 2016 farm because the Products Configuration Wizard was throwing an error. The error was as follows.
Failed to create the configuration database.
An exception of type System.Xml.Schema.SchemaException was thrown. Additional exception information: Feature definition with Id [guid] failed validation, file ‘fieldwss4.xml’, line 68, character 9:
The ‘ListInternal’ attribute is not allowed.
In the Log File, I was able to find a matching log entry, but there wasn’t any additional useful information. As such, we obviously need to go check out what’s up with this file.
If you look for the ‘fieldwss4.xml‘ file, you’ll find it in the following location.
“C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\TEMPLATE\FEATURES\field”
In this file, you’ll find that there are 4 “Field”s that use the “ListInternal” attribute, like seen below.
<Field ID=”{d340fca5-f503-4baa-bae9-90f1447ebff6}”
Name=”SMLastModifiedDate”
SourceID=”http://schemas.microsoft.com/sharepoint/v3″
StaticName=”SMLastModifiedDate”
Group=”_Hidden”
ColName=”LastModifiedDate”
RowOrdinal=”0″
ReadOnly=”TRUE”
Type=”Lookup”
List=”Docs”
ListInternal=”StorageMetrics”
ShowField=”SMLastModifiedDate”
JoinColName=”Id”
DisplayName=”$Resources:core,StorageMetrics_LastModifiedDate;”>
</Field>
It turns out that this is perfectly fine, don’t worry about modifying this file. The real issue is the schema definition for this XML file. The definition can be found in the following location (this is the file we actually need to modify). You find this file in the following location.
“C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\TEMPLATE\XML”
The file is named “wss.sxd“.
It turns out this schema file is missing an element that defines what the “ListInternal” attribute is. We simply need to go fix that.
When editing this file, look for the following element (FieldDefinition). This is the parent of the element we’ll need to add to the file.
Within that element, you should find a child attribute with the name “List”. To make the file neat and tidy, we’re simply going to add a new element (another attribute) after the “List” element.
Add the following element to the file (immediately after “List”):
<xs:attribute name=”ListInternal” type=”xs:string” />
Save the file and rerun the products configuration wizard. Everything should work in the configuration wizard this time around.
Hopefully this helps anyone else who’s running into this issue.
Thank you so much.. We had a issue in activating site template wsp. Resolved with the proposed change in wss.xsd
Thank you Colin,This solution saved my day.
You’re welcome!