OSGMLNORM(1)

πŸ“¦
version 1.5.2 Β· 3 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, debian bookworm, debian trixie, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

🌸 OSGMLNORM(1) β€” the osgmlnorm page, bestie edition 🌸

okay so real talk: this is osgmlnorm, aka the SGML/XML document normalizer from section 1 of the manual. she's giving quiet librarian energy but she's actually iconic. let's get into it πŸ’…


✨ SYNOPSIS ✨

osgmlnorm [-CdeghmnrRvx] [-alinktype] [-Aarchitecture] [-bbctf]
          [-ccatalog] [-Ddirectory...] [-Emax_errors...] [-iname...]
          [-fname...] [-wwarning...] [sysid...]

look at her. so many little flags. a whole alphabet of options. we love a girl with range πŸŽ€


πŸ’– DESCRIPTION πŸ’–

so what does she actually do? osgmlnorm prints a normalized document instance on standard output for the SGML document contained in the concatenation of the entities with system identifiers. yes bestie, that's the whole vibe: she takes your messy SGML and hands it back all tidy and normalized, straight to stdout. ✨

and here's the tea β€” when the normalized instance is prefixed with the original SGML declaration and prolog, it will have the same ESIS as the original SGML document. but (and there's always a but) with these exceptions:

  • The output of osgmlnorm does not protect against the recognition of short reference delimiters, so any USEMAP declarations must be removed from the DTD.
  • The normalized instance will use the reference delimiters, even if the original instance did not.
  • If marked sections are included in the output using the -m option, the reference reserved names will be used for the status keywords even if the original instance did not.
  • Any ESIS information relating to the SGML LINK feature will be lost. gone. no cap. πŸ’€

also, the normalized instance will not use any markup minimization features, except that:

  • Any attributes that were not specified in the original instance will not be included in the normalized instance. (Current attributes will be included, don't worry bestie.)
  • If the declared value of an attribute was a name token group, and a value was specified that was the same as the name of the attribute, then the attribute name and value indicator will be omitted. for example, with HTML osgmlnorm would output <DL COMPACT> rather than <DL COMPACT="COMPACT"> β€” lowkey efficient, highkey slay πŸ‘‘

Part of an SGML System Conforming to International Standard ISO 8879 -- Standard Generalized Markup Language. An SGML Extended Facilities system conforming to Annex A of International Standard ISO/IEC 10744 -- Hypermedia/Time-based Structuring Language. πŸ¦‹

The following options are available, and yes, we're going through all of them:

  • -aname, --activate=name β€” Make doctype or linktype name active.
  • -Aarchitecture, --architecture=architecture β€” Parse with respect to architecture architecture.
  • -bbctf, --bctf=bctf β€” Use the BCTF with name bctf for output.
  • -csysid, --catalog=sysid β€” Map public identifiers and entity names to system identifiers using the catalog entry file whose system identifier is sysid.
  • -C, --catalogs β€” This has the same effect as in onsgmls(1).
  • -d, --dtd β€” Output a document type declaration with the same external identifier as the input document, and with no internal declaration subset. No check is performed that the document instance is valid with respect to this DTD. (so don't come for her if your doc is invalid, she literally said she's not checking πŸ™ˆ)
  • -Ddirectory, --directory=directory β€” Search directory for files specified in system identifiers.

This has the same effect as in onsgmls(1).

  • -e, --open-entities β€” Describe open entities in error messages.
  • --error-numbers β€” Show error numbers in error messages.
  • -h, --help β€” Display a help text and exit.
  • -iname, --include=name β€” This has the same effect as in onsgmls(1).
  • -m, --marked-sections β€” Output any marked sections that were in the input document instance.
  • -n, --comments β€” Output any comments that were in the input document instance.
  • -r, --raw β€” Raw output. Don't perform any conversion on RSs and REs when printing the entity. The entity would typically have the storage manager attribute records=asis.
  • -R, --restricted β€” This has the same effect as in onsgmls(1).
  • -v, --version β€” Print the version number.
  • -wtype β€” Control warnings and errors according to type. This has the same effect as in onsgmls(1).
⚠️ heads up bestie: a bunch of these options say "this has the same effect as in onsgmls(1)" β€” that's not me being lazy, that's literally what the page says, so go read onsgmls(1) if you need the deets. iykyk πŸ’œ

πŸ‘€ SEE ALSO πŸ‘€


🫢 AUTHORS 🫢

  • James Clark β€” Author.
  • Ian Castle <ian.castle@openjade.org> β€” Author.

two legends, one manpage. we stan ⭐


this one's brought to you by OpenJade, dated January 2002 β€” and that's the whole footer, so let me do it justice: shoutout to OpenJade for dropping OSGMLNORM(1) back in January 2002 and living in the Reference section of the manual ever since. periodt. 🌈✨