Pro edycja
Barcode — pełna dokumentacja referencyjna
W skrócie
Dział zatytułowany „W skrócie”Powierzchnia kodów kreskowych NextPDF Pro dodaje specjalistyczne symboliki 2D i łańcucha dostaw na wierzchu modułu kodów kreskowych Core. Dostarcza sześć rozwiązywanych przez rejestr enkoderów 2D (Micro QR, DotCode, Han Xin Code, JabCode, rMQR, GS1 DataBar), jeden enkoder komponentu 2D GS1 Composite (CC-C), enkoder 1D USPS Intelligent Mail oraz parser identyfikatorów aplikacji (Application Identifier) GS1 wraz z walidatorem łańcucha dostaw. Kodowanie jest deterministyczne: ten sam ładunek i opcje zawsze dają identyczną macierz modułów. Ta strona opisuje publiczne API, kontrakt zachowania, tryby awarii oraz dowody konformancji dla poszczególnych symbolik.
Dostępność i licencjonowanie
Dział zatytułowany „Dostępność i licencjonowanie”Ta możliwość jest dostarczana w NextPDF Pro (nextpdf/pro) i aktywuje się wraz z kopertą licencyjną poziomu Pro. Wdrożenie bez tego uprawnienia nie ładuje klas tej możliwości. Porównaj edycje i uzyskaj licencję.
composer require nextpdf/pro:^3Każda symbolika wiąże własną nazwę możliwości w kopercie licencyjnej: barcode.microqr, barcode.dotcode, barcode.hanxin, barcode.jabcode, barcode.rmqr, barcode.gs1databar oraz barcode.gs1-composite-cc-c. Gdy możliwość nie jest licencjonowana, rejestr nie rozwiązuje tego enkodera. Kodowanie pełnosymbolowe GS1 Composite CC-A i CC-B nie jest obsługiwane (zobacz tabelę statusu wsparcia), więc nie jest rejestrowany żaden klucz barcode.gs1-composite-cc-a ani barcode.gs1-composite-cc-b.
Powierzchnia publicznego API
Dział zatytułowany „Powierzchnia publicznego API”Klucze rejestru pochodzą z wartości przypadków Core NextPDF\Barcode\Barcode2DType plus dosłowny klucz gs1-composite-cc-c. Dla enkoderów rozwiązywanych przez rejestr stabilnym kontraktem jest klucz rejestru, a nie FQCN enkodera.
| Symbol | Parametry | Domyślne zachowanie | Zwraca | Zgłasza lub zawodzi z | Uwagi |
|---|---|---|---|---|---|
BarcodeProServiceProvider::register() | BarcodeEncoderRegistry $registry | Wiąże wszystkie siedem kluczy rejestru Pro | void | — | Statyczna; idempotentna — drugie wywołanie zastępuje pierwsze wiązanie |
MicroQrEncoder::encode() | $data; opcje ecLevel ('L', 'M', 'Q'; domyślnie 'L'), version (1–4 lub null), mask (0–3 lub null) | Automatycznie wybiera najmniejszą pasującą wersję M1–M4 | Barcode2DData | InvalidArgumentException | Nieobsługiwane 'H' MILCZĄCO sprowadza się do 'L' (wywołujący wymagający wyboru EC fail-closed muszą walidować wstępnie); M1 ignoruje ecLevel |
DotCodeEncoder::encode() | $data; opcje gs1 (bool, domyślnie false), columns (int), rows (int), ratio (float, domyślnie 1.5) | Automatyczny dobór siatki przy proporcji szerokość:wysokość 1.5 | Barcode2DData | InvalidArgumentException | Wymiary siatki mogą być wymuszone dla każdej osi |
HanXinEncoder::encode() | $data; opcje ecLevel (0–3, domyślnie 1), version (1–84, domyślnie auto) | Najmniejsza pasująca wersja | Barcode2DData | InvalidArgumentException | Tryby tekstowe GB 2312 Region 1/2 zgodnie z ISO/IEC 20830 |
JabCodeEncoder::encode() | $data; opcje colors (4, 8, 16, 32, 64, 128, 256; domyślnie 8), eccLevel (0–10, domyślnie 3), symbolNumber (1–61, domyślnie 1), symbolVersions, symbolPositions, symbolEccLevels | Pojedynczy symbol 8-kolorowy | BarcodeColorData | InvalidArgumentException, JabCodeEncodingException | Polichromatyczna macierz modułów z paletą |
RmqrEncoder::encode() | $data; opcje ecLevel (RmqrConstants::EC_M domyślnie, lub EC_H), version (np. 'R7x43', domyślnie auto) | Najmniejsza pasująca z 32 wersji ISO/IEC 23941 | Barcode2DData | InvalidArgumentException | Odrzuca ładunki przekraczające pojemność; nigdy nie obcina |
Gs1DataBarEncoder::encode() | $data; opcje variant (Gs1DataBarVariant, domyślnie OMNIDIRECTIONAL), linkage (bool, domyślnie false), height (int, domyślnie minimum wariantu; per-rząd dla Expanded Stacked), segmentsPerRow (int, domyślnie 4; tylko Expanded Stacked) | Koduje wejście GTIN (rodzina §5/§6) lub ciąg elementów AI GS1 (rodzina §7) | Barcode2DData | InvalidArgumentException; InvalidSymbolStructureException | Kodują się wszystkie siedem wariantów ISO/IEC 24724 Annex J |
Gs1DataBarVariant | — | isImplemented() zwraca true dla wszystkich siedmiu przypadków | enum (7 przypadków) | — | minimumHeightX() i defaultHeightX() zgodnie z Annex J |
ImbEncoder::encode() | string $code (20, 25, 29 lub 31 cyfr) | 65 czterostanowych kresek | BarcodeData | InvalidArgumentException | Interfejs enkodera 1D; nie jest kluczem rejestru 2D |
ImbEncoder::encodeToString() | string $code | Stany kresek jako ciąg T/A/D/F | string | InvalidArgumentException | Do sprawdzania względem wektorów referencyjnych USPS |
Gs1DataParser::parse() | string $data | Automatycznie wykrywa URI Digital Link, w przeciwnym razie format (AI)value | Gs1ParsedData | InvalidArgumentException | Implementuje kontrakt Core Gs1DataParserInterface |
Gs1DataParser::parseDigitalLink() | string $uri | Parsuje URI GS1 Digital Link | Gs1ParsedData | InvalidArgumentException | — |
Gs1DataParser::encodeForCode128() / ::encodeForQrCode() / ::encodeForDataMatrix() | object $parsed | Sekwencja bajtów nośnika z konwencją FNC1 danego nośnika | string | — | Oczekuje instancji Gs1ParsedData |
Gs1DataParser::validateAI() | string $ai, string $value | Sprawdzenie strukturalne jednej wartości AI | bool | — | — |
Gs1Validator::validate() | string $barcodeData, Gs1SupplyChainProfile $profile (domyślnie NONE) | Statyczna szybka ścieżka nad run() | Gs1ValidationResult | — | Błędy parsowania stają się ustaleniami, nie wyjątkami |
Gs1Validator::run() | jak validate() | Parsowanie, cyfry kontrolne, daty, reguły między-AI, profil | Gs1ValidationResult | — | Ścieżka instancyjna; konstruktor przyjmuje wstrzyknięty parser |
Gs1SupplyChainProfile | — | NONE pomija reguły profilu | enum (5 przypadków) | — | RETAIL, FOOD, PHARMA, LOGISTICS, NONE; requiredAIs(), recommendedAIs(), primaryIdentifiers() |
Gs1ValidationResult | — | Ustalenia podzielone według wagi w momencie konstrukcji | klasa readonly | — | isValid, findings, errors, warnings, infos, parsedData; passes(), fails(), totalFindings() |
Gs1ValidationFinding / Gs1FindingSeverity | — | severity, ruleId, message, opcjonalne ai i suggestion | klasa readonly / enum | — | Wagi: Error, Warning, Info |
CompositeComponentA::codewordsFor() | string $data | Enkodacja ciągu binarnego ogólnego przeznaczenia §5, konwersja base-928, samosprawdzenie round-trip | list<int> (każdy 0–927) | InvalidArgumentException | Zasil linkFor() lub zewnętrzny renderer nośnika CC-A |
CompositeComponentA::encode() | ignorowane | Odmawia renderowania pełnosymbolowego CC-A | — | UnsupportedBarcodeFeature (zawsze) | Fail-closed; zobacz Przypadki brzegowe |
CompositeComponentB::encode() | ignorowane | Odmawia kodowania 2D CC-B | — | UnsupportedBarcodeFeature (zawsze) | linkFor() pozostaje dostępny (CCSI 901) |
CompositeComponentC::encode() | $data; opcje przekazywane do nośnika PDF417; carrierType (domyślnie GS1_128) | Pełny nośnik PDF417 z prowadzącym słowem kodowym CCSI 920 | Barcode2DData | BarcodeException; CompositeLinkageException | Dopuszczalny jest tylko nośnik GS1_128 |
CompositeComponent{A,B,C}::linkFor() | string $carrierId, array $codewords, CompositeCarrierType $carrierType | Paruje słowa kodowe komponentu z nośnikiem 1D | CompositeLinkage | CompositeLinkageException | Egzekwuje dopuszczalność i pojemność nośnika |
CompositeVariant / CompositeCarrierType | — | CC_A, CC_B, CC_C; GS1_DATABAR, GS1_128 | enumy | — | maxCodewords(), ccsi(), allowedCarriers(), usesFullPdf417() |
Sygnatury punktów wejścia
Dział zatytułowany „Sygnatury punktów wejścia”public static function register(BarcodeEncoderRegistry $registry): voidpublic function encode(string $data, array $options = []): Barcode2DDatapublic static function validate( string $barcodeData, Gs1SupplyChainProfile $profile = Gs1SupplyChainProfile::NONE,): Gs1ValidationResult
public function run( string $barcodeData, Gs1SupplyChainProfile $profile = Gs1SupplyChainProfile::NONE,): Gs1ValidationResultpublic function parse(string $data): Gs1ParsedDatapublic function parseDigitalLink(string $uri): Gs1ParsedDatapublic function encodeForCode128(object $parsed): stringpublic function encodeForQrCode(object $parsed): stringpublic function encodeForDataMatrix(object $parsed): stringpublic function validateAI(string $ai, string $value): boolpublic function codewordsFor(string $data): arrayKontrakt zachowania
Dział zatytułowany „Kontrakt zachowania”Rozwiązywanie rejestru
Dział zatytułowany „Rozwiązywanie rejestru”Domyślna fabryka rejestru Core wstępnie wiąże enkodery Pro jako leniwe wpisy licencjonowane możliwościami. BarcodeProServiceProvider::register() to wspierane rozwiązanie awaryjne dla aplikacji, które komponują rejestr bez wartości domyślnych, na przykład integracji frameworkowych z własnym kontenerem. Każdy enkoder przekształca ładunek tekstowy oraz opcje danej symboliki w obiekt danych kodu kreskowego, który renderer strony zamienia na operatory zawartości PDF.
Parsowanie i walidacja GS1
Dział zatytułowany „Parsowanie i walidacja GS1”Gs1DataParser przyjmuje czytelne dla człowieka ciągi AI ((01)09521234543213(17)260131) oraz URI GS1 Digital Link. Wytwarza zakodowane sekwencje bajtów dla nośników GS1-128, QR Code i Data Matrix, stosując konwencję FNC1 i separatora grup danego nośnika. Gs1Validator uruchamia pięcioetapowy potok: parsowanie, cyfry kontrolne (GTIN, SSCC), logikę dat, reguły między-AI oraz obowiązkowe AI profilu branżowego. Błąd parsowania daje niepoprawny wynik niosący ustalenia; nie zgłasza wyjątku. Ustalenia dzielą się według wagi na błędy, ostrzeżenia i informacje.
Dyspozycja wariantów GS1 DataBar
Dział zatytułowany „Dyspozycja wariantów GS1 DataBar”Gs1DataBarEncoder::encode() rozdziela wszystkie siedem wariantów ISO/IEC 24724:2011 Annex J przez jeden kontrakt opcji. Omnidirectional, Truncated, Stacked i Stacked Omnidirectional współdzielą algebrę szerokości elementów §5 ze znakiem kontrolnym mod-79. Limited używa własnej algebry znaku symbolu §6 ze znakiem kontrolnym mod-89. Expanded i Expanded Stacked używają algebry §7 (17,4): trzytrybowej maszyny stanów kompaktowania numerycznego, alfanumerycznego i ISO/IEC 646 z §7.2.5.5 plus znak kontrolny mod-211 (§7.2.6). Rodzina §5/§6 przyjmuje 14-cyfrowy GTIN-14 z cyfrą kontrolną mod-10 lub 13-cyfrową identyfikację pozycji. Rodzina §7 przyjmuje surowy ciąg elementów AI GS1 (cyfry, litery, podzbiór interpunkcji ISO/IEC 646, FNC1 jako bajt 0x1D). Opcja linkage ustawia flagę powiązań komponentu 2D do użycia jako liniowy komponent symbolu GS1 Composite.
Komponenty GS1 Composite
Dział zatytułowany „Komponenty GS1 Composite”CC-C wytwarza kompletny rozszerzony komponent 2D na pełnym nośniku PDF417, wstrzykując obowiązkowe słowo kodowe CCSI 920 jako prowadzące słowo kodowe danych (ISO/IEC 24723:2010 §5.4). CC-A generuje zgodne słowa kodowe danych base-928 przez codewordsFor(), z samosprawdzeniem round-trip kodowanie-dekodowanie w trybie fail-closed, lecz odmawia renderowania pełnosymbolowego. CC-B całkowicie odmawia kodowania 2D. linkFor() paruje słowa kodowe komponentu z nośnikiem 1D jako wartość CompositeLinkage, egzekwując dopuszczalność i pojemność nośnika.
Przypadki brzegowe i tryby awarii
Dział zatytułowany „Przypadki brzegowe i tryby awarii”- Każdy enkoder odrzuca pusty ładunek z
InvalidArgumentException. - Micro QR: żądanie nieobsługiwanego poziomu korekcji błędów
HMILCZĄCO sprowadza się doLzamiast zawieść (waliduj opcje wstępnie, jeśli wymagasz wyboru EC fail-closed), ponieważ ISO/IEC 18004 definiuje dla symboli Micro QR tylko L, M i Q. - rMQR: poziom korekcji błędów musi wynosić M lub H; ładunek przekraczający pojemność 32 wersji jest odrzucany, nigdy nie obcinany.
- JabCode: liczba kolorów spoza obsługiwanego zbioru potęg dwójki, poziom ECC spoza 0–10 lub liczba symboli spoza 1–61 są odrzucane; dalsze błędy kodowania zgłaszają
JabCodeEncodingException. - GS1 DataBar: rodzina §5/§6 waliduje cyfrę kontrolną GTIN mod-10, a Limited ogranicza cyfrę wskaźnika do 0 lub 1. Rodzina §7 odrzuca znaki niekodowalne oraz końcowe lub zdublowane separatory FNC1. Expanded Stacked odrzuca nieparzystą liczbę znaków symbolu na rząd oraz wysokości rzędów poniżej minimum 34X. Wewnętrzne samosprawdzenia struktury zawodzą z
InvalidSymbolStructureExceptionzamiast emitować zniekształcony symbol. - GS1 Composite:
encode()CC-A i CC-B zawsze zgłaszaUnsupportedBarcodeFeature(fail closed). CC-C zgłaszaBarcodeExceptionprzy pustych danych lub przepełnieniu pojemności PDF417 (więcej niż 925 słów kodowych) orazCompositeLinkageExceptiondla niedopuszczalnego nośnika. - Walidacja GS1 oznacza zniekształconą strukturę AI i błędne cyfry kontrolne przed kodowaniem; niepoprawny ciąg łańcucha dostaw nigdy nie wytwarza skanowalnego zgodnego symbolu.
- IMB przyjmuje tylko wejścia 20-, 25-, 29- lub 31-cyfrowe.
- Kodowanie kodów kreskowych nie wykonuje kryptografii. Nie ma zachowania specyficznego dla trybu FIPS; enkodery działają identycznie niezależnie od profilu FIPS.
Konformancja
Dział zatytułowany „Konformancja”NextPDF implementuje te symboliki względem opublikowanych standardów cytowanych poniżej i przypina ślady referencyjne w swoim zestawie testów. Stwierdzenia na tej stronie to deklaracje możliwości: wsparcie to nie konformancja, a konformancja to nie certyfikacja. NextPDF nie posiada żadnej certyfikacji symbolik. Kotwice klauzul są parafrazowane ze źródła produktu i jego fikstur konformancji; korpus silnika zgodności nie obejmuje standardów symbolik kodów kreskowych, więc kotwice poniżej są oparte na produkcie bez identyfikatorów referencyjnych.
| Powierzchnia | Standard | Kotwica klauzuli (parafraza) |
|---|---|---|
| Algebra szerokości elementów GS1 DataBar | ISO/IEC 24724:2011 | §5.2 struktura znaku symbolu; Annex F.1 opracowany przykład (Omnidirectional); Annex F.2 (Limited); Annex F.3 (Expanded) |
| Układy stacked GS1 DataBar | ISO/IEC 24724:2011 | §5.4 Stacked; §5.5 Stacked Omnidirectional; §7.2.8 podział na rzędy i separatory Expanded Stacked |
| Enkodacja GS1 DataBar Expanded | ISO/IEC 24724:2011 | §7.2.5.5 trzytrybowa maszyna stanów kompaktowania; §7.2.6 znak kontrolny mod-211 |
| Powiązania GS1 Composite i CC-C | ISO/IEC 24723:2010 | §5.4 semantyka słowa kodowego CCSI; §5.1 dopuszczalność nośnika |
| Słowa kodowe GS1 Composite CC-A | ISO/IEC 24723:2010 | §5 enkodacja ciągu binarnego ogólnego przeznaczenia z konwersją base-928 |
| Struktura symbolu rMQR | ISO/IEC 23941:2022 | §6.3.2 Table 1 wymiary wersji; §7.8.2 stała maska; Annex C / Annex I referencja format-info |
| Micro QR | ISO/IEC 18004 | pojemność Micro QR M1–M4 oraz informacja o formacie |
| Han Xin Code | ISO/IEC 20830:2021 | struktura symbolu; wzorce wyszukiwania i wyrównania; tryby GB 2312 Region 1/2; ECC Reed–Solomon; maskowanie |
| JabCode | ISO/IEC 23634 | struktura symbolu, koloru i ECC |
| Symbolika pocztowa | USPS-B-3200 | struktura pól Intelligent Mail Barcode |
Status wsparcia poszczególnych symbolik
Dział zatytułowany „Status wsparcia poszczególnych symbolik”Wariant jest oznaczony jako Zweryfikowane, gdy ćwiczy go fikstura w pro/tests/**, najlepiej ślad referencyjny przypięty do opublikowanego opracowanego przykładu. Dostarczany wariant bez dedykowanej fikstury pozostaje Deklarowane. Wariant bez enkodera jest Nieobsługiwane.
| Symbolika / wariant | Status | Dowód (ścieżka testu) | Uwagi |
|---|---|---|---|
| Micro QR (M1–M4) | Zweryfikowane | pro/tests/Unit/Barcode/MicroQrEncoderTest.php | Poziom jednostkowy; fikstura śladu referencyjnego opracowanego przykładu to śledzone uzupełnienie |
| DotCode | Zweryfikowane | pro/tests/Unit/Barcode/DotCodeEncoderTest.php; DotCodeGfArithmeticTest.php | Arytmetyka ciała Galois objęta; brak round-tripu z dekoderem dostawcy |
| Han Xin Code | Zweryfikowane | pro/tests/Unit/Barcode/HanXinEncoderTest.php; HanXinRsEncodingTest.php | Ścieżka kodowania Reed–Solomon jawnie ćwiczona |
| JabCode (1–61 symboli, 4–256 kolorów, ECC 0–10) | Zweryfikowane | pro/tests/Unit/Barcode/JabCode/JabCodeEncoderTest.php (+ 11 zestawów komponentów w tym samym katalogu) | Kaskada wielosymbolowa i zakres ECC ćwiczone; brak round-tripu z dekoderem dostawcy |
| USPS Intelligent Mail Barcode | Zweryfikowane | pro/tests/Unit/Barcode/ImbEncoderTest.php; ImbRoutingCodeTest.php | Walidacja kodu routingu oraz długości 20/25/29/31 cyfr ćwiczona |
| rMQR — wszystkie 32 wersje ISO/IEC 23941 | Zweryfikowane | pro/tests/Conformance/Barcode/Rmqr/AnnexValidatedSizesTest.php; RmqrAnnexCFormatInfoTest.php; pro/tests/Unit/Barcode/Rmqr/RmqrEncoderTest.php | Pary wersja/EC sprawdzone względem ISO/IEC 23941 Table 1; wartości referencyjne format-info z Annex C / Annex I |
| GS1 DataBar — Omnidirectional / Truncated | Zweryfikowane | pro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarReferenceTest.php | Bajtowo równe opracowanemu przykładowi z Annex F.1; Truncated współdzieli kodowanie przy zmniejszonej wysokości |
| GS1 DataBar — Stacked / Stacked Omnidirectional | Zweryfikowane | pro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarStackedReferenceTest.php | Podział na rzędy wyprowadzony ze śladu z Annex F.1; konstrukcja separatorów zgodnie z §5.4 i §5.5 |
| GS1 DataBar — Limited | Zweryfikowane | pro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarLimitedReferenceTest.php; pro/tests/Unit/Barcode/Gs1DataBar/Gs1DataBarLimitedEncoderTest.php | Bajtowo równe opracowanemu przykładowi z Annex F.2 (pozycja 00098765432105) |
| GS1 DataBar — Expanded | Zweryfikowane | pro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarExpandedReferenceTest.php; pro/tests/Integration/Barcode/Gs1DataBarExpandedTwoDecoderTest.php | Bajtowo równe opracowanemu przykładowi z Annex F.3 ((10)12A); round-trip niezależnym dekoderem względem zxing-cpp i ZBar |
| GS1 DataBar — Expanded Stacked | Zweryfikowane | pro/tests/Unit/Barcode/Gs1DataBar/Gs1DataBarExpandedEncoderTest.php (przypadki stacked); powyższy round-trip integracyjny | Ten sam potok danych co jednorzędowy Expanded; podział na rzędy i separatory §7.2.8 potwierdzone |
| GS1 Composite — CC-C (nośnik PDF417) | Zweryfikowane | pro/tests/Conformance/Barcode/Gs1Composite/CompositeComponentCTest.php; CompositeRoundtripTest.php; CompositeLinkageTest.php | Słowo kodowe CCSI 920 i współdziałanie flagi powiązań objęte |
| GS1 Composite — CC-A | Częściowe | pro/tests/Unit/Barcode/Gs1Composite/CompositeComponentACodewordTest.php; pro/tests/Conformance/Barcode/Gs1Composite/CompositeComponentATest.php | Generowanie słów kodowych Zweryfikowane (base-928, samosprawdzenie round-trip); renderowanie pełnosymbolowe nieobsługiwane — encode() zawodzi bezpiecznie (fail closed) |
| GS1 Composite — CC-B | Nieobsługiwane | pro/tests/Conformance/Barcode/Gs1Composite/CompositeComponentBTest.php (potwierdza odrzucenie fail-closed) | Brak kodowania 2D; pomocnik powiązań (CCSI 901) pozostaje dostępny |
| Parser AI GS1 | Zweryfikowane | pro/tests/Unit/Barcode/Gs1DataParserTest.php; Gs1DataParserFnc1Test.php | Oba formaty wejścia oraz wszystkie trzy wyjścia sekwencji bajtów nośnika ćwiczone |
| Walidator łańcucha dostaw GS1 | Zweryfikowane | pro/tests/Unit/Barcode/Gs1ValidatorTest.php; Gs1ValidatorCrossAiTest.php; pro/tests/Unit/Barcode/Gs1/Gs1ValidatorDateValidationEdgeCaseTest.php | Cyfry kontrolne, obowiązkowe kombinacje między-AI oraz logika dat ćwiczone |
Notatki deweloperskie
Dział zatytułowany „Notatki deweloperskie”- Kotwice dowodowe na tej stronie to ścieżki testów w
pro/tests/**; repozytorium nie dostarcza kataloguexamples/dla tego modułu. - Siedem nazw możliwości wymienionych w sekcji Dostępność i licencjonowanie to klucze, które wiąże dostawca usług. Enkoder IMB jest konstruowany bezpośrednio i nie posiada klucza rejestru.
- CC-A emituje tylko metodę enkodacji ogólnego przeznaczenia; metody skompresowane specyficzne dla aplikacji to udokumentowana pozostałość gęstości, a nie luka poprawności.
Granica publikacji
Dział zatytułowany „Granica publikacji”Ta strona dokumentuje wyłącznie zewnętrznie obserwowalne zachowanie oraz wspieraną powierzchnię publicznego API. Wewnętrzne ścieżki przestrzeni nazw, klasy pomocnicze, tabele mechanizmów, nazwy plików runbooków oraz prefiksy zgłoszeń są poza zakresem.