LogoLogo
  • Internet Object 1.0
  • Internet Object
    • Abstract
    • The Poetic Principles of Internet Object
    • Objectives
    • Introducing Internet Object
  • The Structure
    • Internet Object Document
      • Header
      • Data Sections
    • Structural Elements
      • Structural Characters and Literals
      • Literals
      • Other Special Characters
      • Whitespaces
    • Values Representations
      • Objects
      • Arrays
      • Strings
        • Open Strings
        • Regular Strings
        • Raw Strings
      • Numeric Values
        • Number
        • BigInt
        • Decimal
        • NaN and Infinity
      • Base64
      • Date and Time
      • Booleans
      • Nulls
    • Comments
    • Encoding
  • The Collections
    • Collection
    • Creating Collection
    • Collection Rules
    • Data Streaming
  • The Definitions
    • Definitions
    • Variables
    • Complex Schema
  • Schema Definition Language
    • Internet Object Schema
    • The structure
    • Data Types
      • Any
      • String
        • String Derived Types
          • Email
          • URL
          • Date
          • Time
          • DateTime
      • Number
        • Derived Types
          • int
          • byte
          • int16
          • int32
      • Object
      • Array
      • Bool
      • Base64
      • Date and Time
    • Dynamic Schema
    • MemberDef (with Object Schema Comparison)
    • TypeDef
  • Other
    • Best Practices
    • FAQs
    • Contributors
    • License
Powered by GitBook
On this page
Edit on GitHub
Export as PDF
  1. The Structure
  2. Values Representations

Base64

Base64 byte strings in Internet Object

PreviousNaN and InfinityNextDate and Time

Last updated 1 month ago

Was this helpful?

CtrlK
  • Syntax
  • Structural Characters
  • Valid Forms
  • Optional Behaviors
  • Invalid Forms
  • Preservation of Structure
  • Decoding Behavior
  • See Also

Was this helpful?

A Base64 Byte String in Internet Object is a sequence of binary data encoded in Base64 format, prefixed with b and enclosed in either single quotes (' U+0027) or double quotes (" U+0022). Byte strings are ideal for representing binary data such as images, encrypted content, cryptographic keys, or any arbitrary sequence of bytes in a text-based format.

Base64 byte strings are scalar values that represent binary data. The content between the quotes must be valid Base64 encoding according to RFC 4648.

Syntax

A Base64 byte string is prefixed with b and enclosed in either single or double quotes. The content must be valid Base64 encoding.

base64String = "b" (singleQuotedBase64 | doubleQuotedBase64)
singleQuotedBase64 = "'" base64Content "'"
doubleQuotedBase64 = '"' base64Content '"'
base64Content = { base64Character }
base64Character = "A" | "B" | "C" | ... | "Z" | "a" | "b" | ... | "z" | "0" | "1" | ... | "9" | "+" | "/" | "="

Structural Characters

The following characters are used to structure Base64 byte strings:

Symbol
Name
Unicode
Description

b

Byte Prefix

U+0062

Indicates Base64 byte string type

'

Single Quote

U+0027

Encloses Base64 content

"

Double Quote

U+0022

Encloses Base64 content

A-Z

Uppercase Letters

U+0041-U+005A

Base64 alphabet

a-z

Lowercase Letters

U+0061-U+007A

Base64 alphabet

0-9

Digits

U+0030-U+0039

Base64 alphabet

+

Plus Sign

U+002B

Base64 alphabet

/

Forward Slash

U+002F

Base64 alphabet

=

Equals Sign

U+003D

Base64 padding character

Note: Only valid Base64 characters are allowed within the quotes. Invalid characters will result in a parsing error.

Valid Forms

Examples of valid Base64 byte strings:

b'SGVsbG8gV29ybGQ='                    # "Hello World" in Base64
b"SGVsbG8gV29ybGQ="                    # Same as above with double quotes
b'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg=='  # PNG image data
b'QWxhZGRpbjpvcGVuIHNlc2FtZQ=='        # "Aladdin:open sesame" in Base64
b''                                    # Empty byte string
b""                                    # Empty byte string (double quotes)
b'TWFu'                                # "Man" in Base64
b'TWE='                                # "Ma" in Base64 (with padding)
b'TQ=='                                # "M" in Base64 (with padding)

Optional Behaviors

  • Whitespace: Leading and trailing whitespace around the quotes are ignored. Internal whitespace within the Base64 content is not allowed.

  • Empty Representation: Empty byte strings are supported (b'' or b"").

  • Case Sensitivity: The prefix must be lowercase b. The Base64 content is case-sensitive as per RFC 4648.

  • Padding: Proper Base64 padding with = characters is required for correct decoding.

  • Validation: The parser validates that the content is valid Base64 and can be decoded to binary data.

Invalid Forms

Examples of invalid Base64 byte strings:

bSGVsbG8=                             # ✗ Missing quotes
b'SGVsbG8 gV29ybGQ='                  # ✗ Space within Base64 content
b'SGVsbG8@V29ybGQ='                   # ✗ Invalid character '@' in Base64
b'SGVsbG8'                            # ✗ Invalid Base64 (missing padding)
b'SGVsbG8gV29ybGQ'                    # ✗ Invalid Base64 (incomplete)
B'SGVsbG8gV29ybGQ=                    # ✗ Missing closing quote
b''SGVsbG8gV29ybGQ=''                 # ✗ Double quotes around content

Preservation of Structure

Internet Object preserves:

  • The exact Base64 encoding as written

  • The choice of single or double quotes

  • The lowercase b prefix

It does not interpret or enforce:

  • The format or structure of the decoded binary data

  • Application-specific constraints on the binary content

  • Compression or encoding within the binary data

Decoding Behavior

When processed by an Internet Object parser:

  • The Base64 content is decoded into a sequence of bytes

  • The resulting binary data is typically represented as a byte array or buffer

  • Invalid Base64 content results in a parsing error

  • The decoded data maintains the exact binary representation

See Also

  • Values Overview

  • Base64 Schema