카탈로그 파일에서 많이 쓰이는 지시어는 다음과 같습니다.
지시어 PUBLIC은 공식 식별이름과 시스템 식별이름을 짝지워줄 때 쓰입니다.
지시어 SYSTEM은 시스템 식별이름을 또 다른 시스템 식별이름과 짝지워 줍니다.
지시어 SGMLDECL은 적용될 필요가 있는 SGML 선언(declaration) 파일의 위치를 알려줍니다.
SGMLDECL과 비슷한 것으로서, DTDDECL도 적용될 필요가 있는 SGML 선언 파일의 위치를 알려줍니다. 다만 DTDDECL은 특별히 DTD와 관련된 선언 파일들을 다룹니다. 그러나 아쉽게도, 현재까지 이 지시어를 지원하는 자유 소프트웨어는 없습니다. 그렇지만 이 지시어를 사용함으로써 여러개의 카탈로그 파일을 쓸 수 있는 이점을 얻을 수는 있습니다.
지시어 CATALOG는 카탈로그 안에 또 다른 카탈로그를 포함시킬 수 있도록 해줍니다. 이 방법을 쓰면, 카탈로그를 뜯어 고치지 않고서도 여러가지 독립적인 카탈로그를 함께 사용할 수 있습니다.
지시어 OVERRIDE는 공식 식별이름보다 시스템 식별이름이 더 우선권을 갖도록 할 것인지 아닌지를 결정합니다. 대부분의 시스템에서는 시스템 식별이름이 우선권을 갖도록 되어 있습니다.
지시어 DELEGATE는 어떤 공식 식별이름의 집합을 따로 다른 카탈로그 파일에 의해서 해석될 수 있도록 해줍니다. 이 지시어는 해당 공식 식별이름을 인식하는 과정에 개입한다는 점에서 CATALOG 지시어와는 차이가 있습니다.
위의 예에서, "-//OASIS"로 시작하는 모든 공식 식별이름은 모두 "/usr/sgml/oasis/catalog"에 의해서 해석됩니다.
만일, 어떤 유형의 문서인지를 알려주는 공식 식별이름이나 시스템 식별이름이 없는 SGML 문서가 있다면, DOCTYPE 지시어에 의해 지정된 DTD가 기본값으로 사용됩니다.