Where do I change doc type definitions used by Content Importer?

We want to be able to use the varref/varid properties for uicontrol and wintitle tags. I have updated the DTD in InfoShare\Web\Author\ASP\DocTypes. I can now assign this property to uicontrol and wintitle tags in our editor (Oxygen). However, when I try to import content with Content Importer that has these properties, I get an invalid XML error. Is there something else I need to configure to make this customization work with Content Importer?

  • You would need to restart IIS / or recycle the app pool for ISHCM on the app server. Also, restart the Trisoft Background service.

  • Hi Cobina,

    Customer Support or PS are better in guiding you through this, also making sure that your configuration is maintanable across product upgrades.

    1. Can we assume that Oxygen and Content Importer are on the same client machine? They should by default share the same Synchronized DocTypes folder (the synchronization box you see appear while logging in in a Client Tool)?
    2. What is the exact error? Is it a client-side error? or a server-side web services error? A screenshot or some log files are appreciated?
    3. Also a product version really helps, it is the shortest string of information that tells how a system is supposed to behave.
    4. Can you upload a file with success using the Web Client (ISHCM)?
    5. Do you have more than one application server, did they all receive your configuration changes?

    -Dave

  • Thanks for the reply, sorry for the delayed response. I don't have access to the server, but I asked our IT support to perform these tasks, and they say it has been done. It doesn't seem to have resolved the issue, though. 

  • Thanks for the reply! I had created an issue with SDL support, and they were unable to help me. They suggested that I reach out to the Community to see if there was a known solution before going the Professional Services route. In response to your questions:

    1. Yes, Oxygen and Content Importer are on the same client machine. How do I determine the Synchronized DocTypes folder? Is this the information that is shown after I make a change to the DTD? Do I have to make a change to show it?

    2. The error that I am seeing is a client-side error. I am attaching screen shots and logs.

    3. I am using Tridion 14.0.3 (Version 14.0.4730.3)

    4. I didn't think to try that! Yes, I am able to upload the files with the Web Client. Unfortunately, since the Batch Upload feature is gone in Tridion, I would have to upload each one individually, and there are a lot.

    5. I am running in a single-server configuration.

    2021-08-06T09:57:03.5975077	Info	The conversion started.
    2021-08-06T09:57:04.0424255	Info	Converted file successfully. (C:\Temp\in\AA List Tab=GUID-994EA015-A8BF-40BC-A85F-872E26FE4C6B=5=EN=.xml)
    2021-08-06T09:57:04.1132334	Info	Converted file successfully. (C:\Temp\in\AA Modifications Tab=GUID-0CB96A66-6F7B-44BD-A1B3-D7513E62943F=5=EN=.xml)
    2021-08-06T09:57:04.1850575	Info	Converted file successfully. (C:\Temp\in\AA Property Tab=GUID-9A17E3BA-FA3D-4776-A036-756B3C0C88EF=5=EN=.xml)
    2021-08-06T09:57:04.2548603	Info	Converted file successfully. (C:\Temp\in\About Page (SCIEX OS)=GUID-E64125E0-A6AF-4E30-A2D5-9635978D9433=3=EN=.xml)
    2021-08-06T09:57:04.3316657	Info	Converted file successfully. (C:\Temp\in\About Projects and Root Directories (SCIEX OS)=GUID-6C4C98A8-9D68-44A3-84FB-C32C308E134B=4=EN=.xml)
    2021-08-06T09:57:04.4054557	Info	Converted file successfully. (C:\Temp\in\Acceptance Filters=GUID-2E33668D-E8EA-43F7-ADFF-B0AFFD1B5B89=8=EN=.xml)
    2021-08-06T09:57:04.4732716	Info	Converted file successfully. (C:\Temp\in\Active Audit Map Dialog=GUID-32975494-7157-4055-9932-E0EDA551EBDD=4=EN=.xml)
    2021-08-06T09:57:04.5769961	Info	Converted file successfully. (C:\Temp\in\Add a Compound (SCIEX OS)=GUID-61B76164-83FC-4C88-AE9C-4865C4FF93C0=3=EN=.xml)
    2021-08-06T09:57:04.6408283	Info	The conversion finished: 8 succeeded, 0 failed, 0 up to date, 0 skipped.
    2021-08-06T09:57:04.6697486	Info	The import started.
    2021-08-06T09:57:06.5397677	Error	The plug-in "VALIDATEDTD" returned the following error: "Trisoft.InfoShare.Plugins.WritePlugins.Exceptions.XmlValidationException: Plugin 'VALIDATEDTD' reports that the xml is invalid for object 'GUID-9A17E3BA-FA3D-4776-A036-756B3C0C88EF=5=EN='. Reason: The 'varref' attribute is not declared. (at line 3 position 230)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.<>c__DisplayClass6_0.<Validate>b__0(Object sender, ValidationEventArgs args)
       at System.Xml.XmlValidatingReaderImpl.ValidationEventHandling.System.Xml.IValidationEventHandling.SendEvent(Exception exception, XmlSeverityType severity)
       at System.Xml.Schema.BaseValidator.SendValidationEvent(String code, String arg)
       at System.Xml.Schema.DtdValidator.ValidateStartElement()
       at System.Xml.Schema.DtdValidator.ProcessElement()
       at System.Xml.Schema.DtdValidator.ValidateElement()
       at System.Xml.Schema.DtdValidator.Validate()
       at System.Xml.XmlValidatingReaderImpl.ProcessCoreReaderEvent()
       at System.Xml.XmlValidatingReaderImpl.Read()
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Validate(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Run(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.Host.PluginEngine.RunPlugins(IPluginEngineMetadataContext engineContext, IPluginEngineBlobContext engineBlobContext)" [227;ErrorRunningPlugin] (C:\Temp\out\AA Property Tab=GUID-9A17E3BA-FA3D-4776-A036-756B3C0C88EF=5=EN=.xml)
    2021-08-06T09:57:06.5397677	Error	The plug-in "VALIDATEDTD" returned the following error: "Trisoft.InfoShare.Plugins.WritePlugins.Exceptions.XmlValidationException: Plugin 'VALIDATEDTD' reports that the xml is invalid for object 'GUID-0CB96A66-6F7B-44BD-A1B3-D7513E62943F=5=EN='. Reason: The 'varref' attribute is not declared. (at line 3 position 230)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.<>c__DisplayClass6_0.<Validate>b__0(Object sender, ValidationEventArgs args)
       at System.Xml.XmlValidatingReaderImpl.ValidationEventHandling.System.Xml.IValidationEventHandling.SendEvent(Exception exception, XmlSeverityType severity)
       at System.Xml.Schema.BaseValidator.SendValidationEvent(String code, String arg)
       at System.Xml.Schema.DtdValidator.ValidateStartElement()
       at System.Xml.Schema.DtdValidator.ProcessElement()
       at System.Xml.Schema.DtdValidator.ValidateElement()
       at System.Xml.Schema.DtdValidator.Validate()
       at System.Xml.XmlValidatingReaderImpl.ProcessCoreReaderEvent()
       at System.Xml.XmlValidatingReaderImpl.Read()
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Validate(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Run(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.Host.PluginEngine.RunPlugins(IPluginEngineMetadataContext engineContext, IPluginEngineBlobContext engineBlobContext)" [227;ErrorRunningPlugin] (C:\Temp\out\AA Modifications Tab=GUID-0CB96A66-6F7B-44BD-A1B3-D7513E62943F=5=EN=.xml)
    2021-08-06T09:57:06.8369997	Error	The plug-in "VALIDATEDTD" returned the following error: "Trisoft.InfoShare.Plugins.WritePlugins.Exceptions.XmlValidationException: Plugin 'VALIDATEDTD' reports that the xml is invalid for object 'GUID-994EA015-A8BF-40BC-A85F-872E26FE4C6B=5=EN='. Reason: The 'varref' attribute is not declared. (at line 3 position 230)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.<>c__DisplayClass6_0.<Validate>b__0(Object sender, ValidationEventArgs args)
       at System.Xml.XmlValidatingReaderImpl.ValidationEventHandling.System.Xml.IValidationEventHandling.SendEvent(Exception exception, XmlSeverityType severity)
       at System.Xml.Schema.BaseValidator.SendValidationEvent(String code, String arg)
       at System.Xml.Schema.DtdValidator.ValidateStartElement()
       at System.Xml.Schema.DtdValidator.ProcessElement()
       at System.Xml.Schema.DtdValidator.ValidateElement()
       at System.Xml.Schema.DtdValidator.Validate()
       at System.Xml.XmlValidatingReaderImpl.ProcessCoreReaderEvent()
       at System.Xml.XmlValidatingReaderImpl.Read()
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Validate(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Run(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.Host.PluginEngine.RunPlugins(IPluginEngineMetadataContext engineContext, IPluginEngineBlobContext engineBlobContext)" [227;ErrorRunningPlugin] (C:\Temp\out\AA List Tab=GUID-994EA015-A8BF-40BC-A85F-872E26FE4C6B=5=EN=.xml)
    2021-08-06T09:57:07.1651880	Error	The plug-in "VALIDATEDTD" returned the following error: "Trisoft.InfoShare.Plugins.WritePlugins.Exceptions.XmlValidationException: Plugin 'VALIDATEDTD' reports that the xml is invalid for object 'GUID-E64125E0-A6AF-4E30-A2D5-9635978D9433=3=EN='. Reason: The 'varref' attribute is not declared. (at line 3 position 230)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.<>c__DisplayClass6_0.<Validate>b__0(Object sender, ValidationEventArgs args)
       at System.Xml.XmlValidatingReaderImpl.ValidationEventHandling.System.Xml.IValidationEventHandling.SendEvent(Exception exception, XmlSeverityType severity)
       at System.Xml.Schema.BaseValidator.SendValidationEvent(String code, String arg)
       at System.Xml.Schema.DtdValidator.ValidateStartElement()
       at System.Xml.Schema.DtdValidator.ProcessElement()
       at System.Xml.Schema.DtdValidator.ValidateElement()
       at System.Xml.Schema.DtdValidator.Validate()
       at System.Xml.XmlValidatingReaderImpl.ProcessCoreReaderEvent()
       at System.Xml.XmlValidatingReaderImpl.Read()
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Validate(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Run(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.Host.PluginEngine.RunPlugins(IPluginEngineMetadataContext engineContext, IPluginEngineBlobContext engineBlobContext)" (C:\Temp\out\About Page (SCIEX OS)=GUID-E64125E0-A6AF-4E30-A2D5-9635978D9433=3=EN=.xml)
    2021-08-06T09:57:07.2949399	Info	Updated the object. (C:\Temp\out\About Projects and Root Directories (SCIEX OS)=GUID-6C4C98A8-9D68-44A3-84FB-C32C308E134B=4=EN=.xml)
    2021-08-06T09:57:07.3488292	Error	The plug-in "VALIDATEDTD" returned the following error: "Trisoft.InfoShare.Plugins.WritePlugins.Exceptions.XmlValidationException: Plugin 'VALIDATEDTD' reports that the xml is invalid for object 'GUID-2E33668D-E8EA-43F7-ADFF-B0AFFD1B5B89=8=EN='. Reason: The 'varref' attribute is not declared. (at line 4 position 29)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.<>c__DisplayClass6_0.<Validate>b__0(Object sender, ValidationEventArgs args)
       at System.Xml.XmlValidatingReaderImpl.ValidationEventHandling.System.Xml.IValidationEventHandling.SendEvent(Exception exception, XmlSeverityType severity)
       at System.Xml.Schema.BaseValidator.SendValidationEvent(String code, String arg)
       at System.Xml.Schema.DtdValidator.ValidateStartElement()
       at System.Xml.Schema.DtdValidator.ProcessElement()
       at System.Xml.Schema.DtdValidator.ValidateElement()
       at System.Xml.Schema.DtdValidator.Validate()
       at System.Xml.XmlValidatingReaderImpl.ProcessCoreReaderEvent()
       at System.Xml.XmlValidatingReaderImpl.Read()
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Validate(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Run(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.Host.PluginEngine.RunPlugins(IPluginEngineMetadataContext engineContext, IPluginEngineBlobContext engineBlobContext)" (C:\Temp\out\Acceptance Filters=GUID-2E33668D-E8EA-43F7-ADFF-B0AFFD1B5B89=8=EN=.xml)
    2021-08-06T09:57:07.6999496	Error	The plug-in "VALIDATEDTD" returned the following error: "Trisoft.InfoShare.Plugins.WritePlugins.Exceptions.XmlValidationException: Plugin 'VALIDATEDTD' reports that the xml is invalid for object 'GUID-32975494-7157-4055-9932-E0EDA551EBDD=4=EN='. Reason: The 'varref' attribute is not declared. (at line 3 position 230)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.<>c__DisplayClass6_0.<Validate>b__0(Object sender, ValidationEventArgs args)
       at System.Xml.XmlValidatingReaderImpl.ValidationEventHandling.System.Xml.IValidationEventHandling.SendEvent(Exception exception, XmlSeverityType severity)
       at System.Xml.Schema.BaseValidator.SendValidationEvent(String code, String arg)
       at System.Xml.Schema.DtdValidator.ValidateStartElement()
       at System.Xml.Schema.DtdValidator.ProcessElement()
       at System.Xml.Schema.DtdValidator.ValidateElement()
       at System.Xml.Schema.DtdValidator.Validate()
       at System.Xml.XmlValidatingReaderImpl.ProcessCoreReaderEvent()
       at System.Xml.XmlValidatingReaderImpl.Read()
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Validate(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Run(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.Host.PluginEngine.RunPlugins(IPluginEngineMetadataContext engineContext, IPluginEngineBlobContext engineBlobContext)" (C:\Temp\out\Active Audit Map Dialog=GUID-32975494-7157-4055-9932-E0EDA551EBDD=4=EN=.xml)
    2021-08-06T09:57:07.7508999	Error	The plug-in "VALIDATEDTD" returned the following error: "Trisoft.InfoShare.Plugins.WritePlugins.Exceptions.XmlValidationException: Plugin 'VALIDATEDTD' reports that the xml is invalid for object 'GUID-61B76164-83FC-4C88-AE9C-4865C4FF93C0=3=EN='. Reason: The 'varref' attribute is not declared. (at line 5 position 31)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.<>c__DisplayClass6_0.<Validate>b__0(Object sender, ValidationEventArgs args)
       at System.Xml.XmlValidatingReaderImpl.ValidationEventHandling.System.Xml.IValidationEventHandling.SendEvent(Exception exception, XmlSeverityType severity)
       at System.Xml.Schema.BaseValidator.SendValidationEvent(String code, String arg)
       at System.Xml.Schema.DtdValidator.ValidateStartElement()
       at System.Xml.Schema.DtdValidator.ProcessElement()
       at System.Xml.Schema.DtdValidator.ValidateElement()
       at System.Xml.Schema.DtdValidator.Validate()
       at System.Xml.XmlValidatingReaderImpl.ProcessCoreReaderEvent()
       at System.Xml.XmlValidatingReaderImpl.Read()
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Validate(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.WritePlugins.DocumentObj.BlobValidatePlugin.Run(IWriteMetadataAndBlobContext context)
       at Trisoft.InfoShare.Plugins.Host.PluginEngine.RunPlugins(IPluginEngineMetadataContext engineContext, IPluginEngineBlobContext engineBlobContext)" (C:\Temp\out\Add a Compound (SCIEX OS)=GUID-61B76164-83FC-4C88-AE9C-4865C4FF93C0=3=EN=.xml)
    2021-08-06T09:57:07.8316819	Warn	The import finished: 1 succeeded, 7 failed, 0 up to date, 0 skipped.
    

  • Hey Cobina,

    The error message you are getting is actually coming from the server. When you create content, the plugin "ValidateDTD" is checking if the content is valid according to the DTDS. In this case the topic "Add a Compound (SCIEX OS)" using ID GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx is not valid.

    It seems you are trying to import content into the Dev environment. So a quick test would be to (in Dev):

    1. Locate version 2 of "Add a Compound (SCIEX OS)" using ID GUID-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

    2. Create version 3 of the topic

    3. Check-out the topic using Oxygen.

    4. try adding the Varref attribute on uicontrol and wintitle

    5. If you do have the option in Oxygen to add it, try checking in. My expectation is that you have the same error message.

    - If you are able to use the Varref/VarID attribute in Production, it seems that there are changes not copied over to Development. 

    - If you haven't tested it in production, it could be that there is an issue with the DTD that the Varref/VarID attribute is not declared correctly on wintitle or uicontrol 

     

     

     

  • Thanks for your reply!

    I have spent some time with SDL support, and we confirmed that Content Importer does not use the customized DTD definitions, while both Oxygen and the web client do. We turned off the ValidateDTD property for XML Write Plug-In Settings, and then the Content Importer did import the content.

    So, I do have a workaround, albeit a risky one. The topics I am trying to import were exported from Tridion, so they were valid. However, we are running scripts on them before reimporting. Hopefully the scripts don't corrupt the topics! We are testing this on our Development server to see if any issues arise.  

  • Hey Cobina

    Disabling the validateDTD can be dangerous as we dont want invalid content in the repository. I do think I know what is going on. 

    When using content importer, it changes the doctype definition

    from: <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">

    to: <!DOCTYPE topic PUBLIC "-//SDL//DTD DITA Topic//EN" "sdlTopic.dtd">

    The reason for this is that new content we import into the CMS can then use the Dita1.3 DTDS. Since Dita1.3 is backwards compatible, any content that is imported is still valid.

    In this case, you changed the dita1.2 dtds (topic.dtd) but that change is not available in "SDLTopic.DTD", and therefore we see the error message "invalid content"

    There are 2 options to resolve this:

    1. Disable the option "convertDocumentTypes" in content importer:

    Disabling this option, will tell content Importer not to change the Doctype declaration from the original one, to Dita 1.3

    1. Rightclick on the start menu > Run > Enter : %localappdata%\sdl\InfoShare Client\14.0
    2. Edit the file "Trisoft.ContentImporter.config"
    3. Locate line 25: <convertDocumentTypes>
    4. Change the option from True to False
    5. Save the file

    Note: after changing this setting, you need to delete the contents that are stored in the the conversion folder (out Folder)

    2. Change the SDL DTDS:

    You can also apply the same change to the SDL DTDS, similar as what you have done for the OASIS DTDS. That way you can still use dita1.3 for new content and you can use the Varref/VarID attribute on wintitle or uicontrol 

    Hopefully this helps.

  • Thanks so much, Jered! That helps a lot!

    Using the first option, I was able to import content into our database. I haven't tried the second option yet, but I will try that this week.

  • Jered, I have tried the second method, and it doesn't seem to work.

    1. I turned the <convertDocumentTypes> option back on. 

    2. I updated the DTD .

    3. I opened the mod file in C:\Users\cobina.pricejones\AppData\Local\SDL\InfoShare Client\0624292488\Config\DocTypes\dita-oasis\1.2\technicalContent\dtd to confirm that the DTD change was sync'd to my local computer. I will attach the mod file. Please see the <uicontrol> section.

    4. I ran Content Importer. I got the same validation error as before.

    5. I opened the topic in the out folder, and verified the doctype: <!DOCTYPE task PUBLIC "-//SDL//DTD DITA Task//EN" "task.dtd"[]>. 

    On the other hand, the first method works fine, so I have a good solution.

    Thanks, again!