When plug-in users open a document that has a specific document type such as "concept.dtd", the segmentation settings are empty. This issue occurs even though the profile administrator has defined extraction settings for that document type and added the extraction settings to the appropriate checking profile.
This issue can occur when you have enabled checking profiles but use a legacy Acrolinx plug-in to connect to connect a 4.0 Acrolinx server.
All legacy Acrolinx plug-ins for XML editors use DTD identifiers or XML schemas to get the right extraction settings from the Acrolinx server. Sometimes, the Acrolinx plug-ins use different identifiers for the same DTD. This issue can prevent users from receiving the segmentation and filter settings that you have defined for them.
By default, the Acrolinx plug-ins use a combination of the DTD public ID and system ID to identify the document type that users have open. However, if your users are not receiving the correct segmentation and filter settings, you can configure the plug-ins to ignore the system ID. When you make this configuration, the plug-ins use only the public ID to identify DTDs.
When a user opens a document, the plug-in checks the DTD that is referenced in the <!DOCTYPE> element. The plug-in then checks if there are extraction settings for the DTD. If the plug-in cannot find extraction settings for the DTD, users see an empty set of segmentation settings in the plug-in interface.
The DTD identifier in the extraction settings is a combination of the Public ID and System ID. You can find these IDs in the <!DOCTYPE> element of an open document.
- User A has saved segmentation and filter settings for all documents that contain the
following doctype tag:
<!DOCTYPE book PUBLIC "-//MYCOMPANY//DTD UG XML Book//EN" "mydocbook.dtd">
- This group of settings is stored in an extraction settings file with the following
-//MYCOMPANY//DTD UG XML Book//ENmydocbook.dtd
In certain environments, different locations of a specific DTD file will cause multiple identifiers for the same DTD. Suppose that user B also works with mydocbook.dtd has selected the same checking profile as user A.
- User B opens a document with the following doctype
<!DOCTYPE book PUBLIC "-//MYCOMPANY//DTD UG XML Book//EN" "C:\doctypes\mydocbook.dtd">
- User B expects to receive the same segmentation and filter settings as user A, but these
settings are empty in the Acrolinx options.
This issue occurs because the plug-in is searching for extraction settings with the following identifier:
-//MYCOMPANY//DTD UG XML Book//ENC:\doctypes\mydocbook.dtdThe identifier contains an extra path c:\doctypes\ which causes a mismatch between the existing identifier for mydocbook.dtd and the identifiers that the plug-in is searching for.
Resolving the Problem
You can prevent this issue by updating the DTD identifier for the relevant extraction settings.
To use the public ID as the DTD identifier, follow these steps:
Open the following file:
For example, to edit the checking profile "Standard US", open the file en_standard_us.json.
- Edit the line: extractionSettingIds
- Remove the System ID from the end of the DTD reference.
If necessary, refer to the <!DOCTYPE> tag in a sample document to identify the system ID.
For the DTD reference
-//MYCOMPANY//DTD UG XML Book//ENC:\doctypes\mydocbook.dtd
shorten the DTD reference to
-//MYCOMPANY//DTD UG XML Book//EN
Open the following file:
For example, if you were editing the identifier for mydocbook.dtd that was used in the previous example, you would open the file:
- Edit the line legacyFallback and repeat step 3.
- Save your changes.
Your changes take effect immediately.