The concept of an
xpub originates from BIP32, where it denotes an extended public key, from which multiple child keys can be derived.
At the time of BIP32, there was really only one address type commonly used, pay-to-pubkey-hash (P2PKH). Thus, BIP32 were commonly understood to imply a sequence of derived P2PKH addresses.
After segwit, when other address types came in common use, like P2SH-P2WPKH and P2WPKH, people needed a way to convey "a BIP32 extended public key, but the derived addresses are P2SH-P2WPKH". This became the
ypub scheme defined in BIP49 for P2SH-P2WPKH, and later the
zpub scheme in BIP84 for P2WPKH. They contain the exact same information as a BIP32 extended public key, but with a different prefix to denote the corresponding address type. Various other variants were defined and adopted by some software, e.g.
Zpub for P2WSH, but not standardized through the BIP process as far as I know.
Other software never adopted
Zpub/..., as the continuing need for new prefixes does not scale well, and the notion of trying to pack all address derivation information into a single key string also just doesn't work for more complex constructions like multisig. For example, in the newer output descriptors (BIP380) standard,
xpub is always used, but one would use
wpkh(xpub...) to indicate a P2WPKH address type.
As far as I know, there is no
*pub-like standard for P2TR yet, and in my opinion there should not be. It is much clearer to convey address type information outside of key strings.
Disclaimer: I'm the author of BIP32, and co-author of BIP380.