My DITA specialization (based on parml) works fine in XML Documentation for AEM and in Adobe's web-based editor for AEM XML, but I cannot get FrameMaker 2020 to recognize it (to create output templates).
I am following these instructions: Customizing DITA for Adobe FrameMaker.
My .mod and .ent files are in the dtd folder. I have added the information to both concept.dtd and ditabase.dtd. In a new concept, I can add in the new elements directly into the raw/source view, but they are not listed in the Element list and they display as red in the Structure View.
I am new to FrameMaker and have to be doing something simple and obvious wrong, but I can't figure it out.
FrameMaker uses an EDD to define valid elements and structure. That EDD needs to be imported into the template before the new elements become available in FM. Check the Structured Applications Developer Guide. The DTD and MOD files are used to check structural validity but FM cannot work without having an EDD and template (which include styling as well as structure definition).
Thank you! I have located and downloaded the developers guide.
Is there any other helpful documentation that I don't know I need? 🙂
Try to build a very simple structured application from scratch: DTD, EDD, read-write rules, template. See if you can make that work using the Developer's Guide, possibly by also using the Developer's Reference. Once you get something done from the ground up you will start to understand how FM handles structured content. Then you should be good to go with DITA specializations.
I've only been able to locate and download the FrameMaker Developer's Reference (282 pages long). I cannot find a current Developer's Guide, only very old ones.
Here is the FrameMaker Developer Center page with all the references you will ever need: https://www.adobe.io/content/dam/adobeio/apis/creativecloud/framemaker/Framemaker-Developer-Center-A...
Scroll down to the heading Structured Applications, subheading Documentation and you will find two entries, one for the Guide (Developing Structured Applications) and one for the Reference.
Got it! Thank you!
As far as I know, I've followed every instruction I can find.
I can manually add in the specialized elements to a concept (from the source XML view), but they do not appear in the list of “elements allowed anywhere in parent”. I have to change the elements settings to “All Elements” to see the specializations. I could live with this since we have no intention of ever using Structured FrameMaker as our authoring tool, but the specialized elements also do not appear in the Paragraph Designer so that I can define their formatting in the output template. Currently, <specl> and its elements are taking their formatting from the parml.def and parml.term definitions.
Does anyone have any ideas what I'm doing wrong and how to fix it?
FrameMaker uses an EDD (Element Definition Document) to make structured authoring possible. Basically, the EDD is a combination of a DTD with a kind of CSS, so that structured content can be rendered in the GUI. The DTD modules are only for validating the DITA files. You need to create an EDD module to be included in the master EDD for your concept (and other topics if you need to have your specialisation available in them), then import the completed EDD into the template that you want to use for your concept (and other topics). Then the element becomes available in the elements catalog.
You can find all information about EDDs and templates in the Structured Application Development Guide, which can be downloaded from the FrameMaker Developer Center.
I added my specialization to the programmingDomain.eddmod.fm since it looked like concept.edd.fm and ditabase.edd.fm was basically conreffing from programmingDomain.eddmod.fm and my specialization was based on parml. I did not create a new edd.fm file for the specification. I confirmed that specl, slentry, st, and sd were listed in concept.edd.fm and ditabase.edd.fm.
I had imported the EDDs into concept.template.fm and ditabase.template.fm.
Did you also make your specialised element available in the definitions for each container element that allows the parml ? If you want you can zip the set of files you have and send them to me (jang at jang dot nl) so I can have a look and tell you where the missing link is.
Yes, I added specl to any container element that parml was also listed in.