Schnittstellen Definition des "Dogsport-Open-Transport"-Protokoll (Agility Version 1.00)

 Inhalt:
 
 Technische Regeln
 Inhaltliche Regeln
 Details Block 1
 Details Block 2
 Details Block 3
 Beispiel-File
 Import Agility-Turnier V6-SP
 Beispiel Agility-Turnier V6-SP
 Anhang Verbandsliste
 Anhang Rassenliste
 
 Downloads:
 
 Open-Transport-Protokoll.pdf
 Open-Transport-Protokoll.txt  (beste Darstellung mit Notepad++)
 HD-Verbandsliste.txt
 HD-Rassenliste.txt
 Open-Transport-Import-Test.csv
 
 



Technische Regeln:
 
-Die Übermittlung findet prinzipiell als Text-File im CSV-Format (ANSI Kodierung) mit wählbarem Trennzeichen statt.
-Der Name des Files gibt sinnvollerweise Aufschluss über den Namen der Veranstaltung.
-Abgeschlossen wird eine Zeile mit CRLF.
-Das File beinhaltet drei Blöcke:
Block 1ist die erste Zeile des Files (Header, Zeile 0), bestehend aus organisatorischen Daten in acht Feldern (0...7),
jeweils abgeschlossen durch ein Semikolon.
Block 2besteht aus mindestens einer und maximal 999 Zeilen und beinhalten die Teamdaten, die ihrerseits aus 80 Feldern (0..79) bestehen.
Jede Teamzeile entspricht dabei einem Team mit allen(!) Meldungen für alle(!) Tage.
Block 3ist die letzte Zeile des Files und besteht aus dem festen Text "[EOF]"
 
Seitenanfang


Inhaltliche Regeln:
 
-Alle numerischen Werte sind im Dezimal-Format notiert.
-!!! Nicht alle Felder müssen gesendet werden und nicht alle Felder müssen ausgewertet werden !!!
-Welche Folgen ein leeres Feld, oder ein Feld mit ungültigen Angaben hat, obliegt dem Empfänger.
-Die Kontrolle, inwieweit persönliche Daten der HF und ggf. HE versendet werden dürfen, obliegt dem Sender (DSGVO)
-Aus allgemeinen Datenschutzgründen, werden Wohnortangaben grundsätzlich nicht übermittelt.
-Dem Sender obliegt es, widersprüchliche Angaben z.B. bei den Meldungen zu vermeiden.
-Dem Empfänger obliegt es, bei fehlerhaften oder widersprüchlichen Angaben, die betreffende Teamzeile oder das komplette File zu verwerfen.
-Empfängerseitig wäre sinnvoll, dem Benutzer mitzuteilen, warum eine Teamzeile oder das gesamte File abgelehnt wurde.
 
Seitenanfang


DETAILS - BLOCK 1, HEADER: (jedes Feld ist abzuschließen mit ";" - auch das letzte Feld)
 
- Das verwendete Trennzeichen für den folgenden Teamdatenblock, ist in Feld 3 per Ascii-Nummer einstellbar.
- Der Sender muss sicherstellen, dass innerhalb von freien Texten, Namen usw, das Trennzeichen nicht vorkommt.
- Die Anzahl der folgenden Team-Daten-Zeilen wird in Feld 6 (Teamcount) angegeben.
- Die Checksumme ist die Anzahl aller Zeichen in allen Teamdaten-Feldern, inkl Trennzeichen (entsprechend Summe der Zeilenlängen bei Ansi-Notation ohne CRLF).
- Die Anzahl der Zeichen kann im Feld 7 (Checksumme) angegeben werden. Soll keine Prüfung vorgenommen werden, ist "0" zu verwenden
 
Zeile 0:Feld 0:  DogSportOpenTxData' Fester Text: "DogSportOpenTxData"
Feld 1:  Sportart' "AGI" oder "ROB" oder "HOP" oder "THS"
Feld 2:  Version' Versionsnummer: 1.00
Feld 3:  Separator' AsciiNummer des verwendeten Trennzeichens im Teamdatenblock
Feld 4:  USER (Absenderkennung)' Freier Text
Feld 5:  PASS (Absenderkennung)' Freier Text
Feld 6:  Teamcount' Anzahl der übermittelten Teams 1...999
Feld 7:  Checksumme' Anzahl aller Zeichen aller Teamdaten (inkl. Trennzeichen, ohne CRLF), alternativ "0"
 
Beispiel:DogSportOpenTxData;AGI;1.00;59;;;105;0;' Protokoll für Agility in der Version 1.00
' Trennzeichen = ";" (ASC=59)
' Absenderkennung nicht angewendet
' 105 Teamdaten-Zeilen folgen
' eine Checksummen-Prüfung wird nicht gewünscht
' Es obliegt dem Empfänger diese Daten anzunehmen oder abzulehnen.
 
Seitenanfang


DETAILS - BLOCK 2, TEAMDATEN (jedes Feld ist abzuschließen mit dem Ascii-Zeichen, welches in Zeile 0, Feld 3 angegeben wurde, auch das letzte Feld)
 
- Jede Team-Daten-Zeile beinhaltet EIN Team, bestehend aus HF und HD, mit ALLEN Meldedaten zu EINER Veranstaltung,
   bestehend aus einem oder mehreren Turniertagen. Mithin kommt jedes Team nur einmal im File vor. Zu beachten ist aber,
   dass EIN Hund mit EINEM HF an zwei (Turnier-)Tagen für zwei Verbände starten kann. Mithin ist EIN Team die Zusammen-
   setzung aus Mitgliedsnummer + Chipnummer + HD-Verband. Die gleiche Mitgliedsnummer mit der gleichen Chipnummer
   aber einem anderen HD-Verband, ist ein weiteres Team.
 
Zeile 1 bis 999:Feld 00:  HD-Rufname' Hier ist der tatsächliche Rufname gemeint, keine Kombination mit dem Zwingernamen oder Angaben in Klammern o.ä.
Feld 01:  HD-Zwingername' Vollständiger Zwingername
Feld 02:  HD-Rasse' Zur Vereinheitlichung empfielt sich die anliegende Rassenliste nach FCI/VDH Definition
Feld 03:  HD-Wurftag' tt.mm.jjjj
Feld 04:  HD-Impfschutz gültig bis' tt.mm.jjjj
Feld 05:  HD-LB-Nummer'
Feld 06:  HD-Chipnummer' Keine Buchstaben, keine Leerzeichen, nur die 15-stellige Transpondernummer des Chips
Feld 07:  HD-Verband' Ein Element aus der anliegenden Verbandsliste
Feld 08:  HD-Größe' In ganzen Zentimetern oder "S", "M", "I", "L"
Feld 09:  HD-Geschlecht' "W"=weiblich   "M"=männlich
Feld 10:  HD-Einmessen' "0"=ist eingemessen   "1"=muss eingemessen werden
Feld 11...19:' HD-AUX
 
Feld 20:  HF-Vorname' Lediglich der Anfangsbuchstabe in Großschreibung
Feld 21:  HF-Nachname' Lediglich der Anfangsbuchstabe in Großschreibung. Titelangaben wie "Dr."/"Prof."/"Ing." sind zu vermeiden
Feld 22:  HF-Geburtsdatum' tt.mm.jjjj
Feld 23:  HF-Mailadresse'
Feld 24:  HF-Telefon-Nr.'
Feld 25:  HF-Mitgliedsnr.'
Feld 26:  HF-Verein'
Feld 27:  HF-Verband'
Feld 28:  HF-Geschlecht' "W"=weiblich   "M"=männlich
Feld 29...39:' HF-AUX
 
Feld 40:  VDH-TEAM-ID' sofern bekannt
Feld 41:  Para-Team' "0"=kein Parateam  /  "1"=Parateam (weitere Ziffern zur Spezifikation der Behinderung, z.b. beim RO)
Feld 42...49:' TE-AUX
 
 
Feld 50:  Meldestring' Der Meldestring eines Teams besteht (beim AGI) aus 20 Zeichen "0" oder "1" pro Veranstaltungstag (mithin pro Turnier).
' Jedes der 20 Zeichen steht für einen Parcours.
' Eine "0" repräsentiert KEINE MELDUNG für einen Parcours / eine "1" repräsentiert eine Meldung für einen Parcours.
' Die ersten 20 Zeichen stehen für den ersten Tag der Veranstaltung, die zweiten zwanzig Zeichen für den zweiten Tag usw.
' Die Tage, also die 20-Zeichen-Blöcke, werden nicht getrennt, also fortlaufend geschrieben und interpretiert.
' Mithin muss die Anzahl der Zeichen im Feld 50 ohne Rest duch 20 Teilbar sein.
' Leserichtung der 20-Zeichen-Blöcke von links nach rechts
' Agility:
' Zeichen-Position   1: Meldung in Parcours A0 Prüfung
' Zeichen-Position   2: Meldung in Parcours A1 Prüfung
' Zeichen-Position   3: Meldung in Parcours A2 Prüfung
' Zeichen-Position   4: Meldung in Parcours A3 Prüfung
' Zeichen-Position   5: Meldung in Parcours J0 Prüfung (macht für gewöhnlich keinen Sinn, da Prüfung ohne Aufstieg
' Zeichen-Position   6: Meldung in Parcours J1 Prüfung (macht für gewöhnlich keinen Sinn, da Prüfung ohne Aufstieg
' Zeichen-Position   7: Meldung in Parcours J2 Prüfung
' Zeichen-Position   8: Meldung in Parcours J3 Prüfung
' Zeichen-Position   9: Meldung in Parcours S0 Spiel als zweiter A0 Lauf (ggf. als '2nd-Chance' ausgeführt)
' Zeichen-Position 10: Meldung in Parcours S1 Spiel als zweiter A1 Lauf
' Zeichen-Position 11: Meldung in Parcours S2 Spiel als zweiter A2 Lauf (macht für gewöhnlich keinen Sinn, da kein Aufstieg)
' Zeichen-Position 12: Meldung in Parcours S3 Spiel als zweiter A3 Lauf (macht für gewöhnlich keinen Sinn, da kein Kls-Erhalt)
' Zeichen-Position 13: Meldung in Parcours Senioren A-Lauf Prüfung
' Zeichen-Position 14: Meldung in Parcours Senioren J-Lauf Spiel
' Zeichen-Position 15: Meldung in Parcours Para A-Lauf (sollte obsolet sein. Para-Starter starten im Hauptfeld)
' Zeichen-Position 16: Meldung in Parcours Para J-Lauf (sollte obsolet sein. Para-Starter starten im Hauptfeld)
' Zeichen-Position 17: Meldung in zusätzlichem, allgemeinen Spiel (X)
' Zeichen-Position 18: Meldung in zusätzlichem, allgemeinen Spiel (Y)
' Zeichen-Position 19: Meldung in zusätzlichem, allgemeinen Spiel (Z)
' Zeichen-Position 20: Meldung in Jumping Open Spiel (wird u.U. Sonntags als 2. Lauf A0/A1 verwendet)
' Beispiel:
' 01000000010000000000010000000100000010000001000100000000001000100000001000000100
' Offenbar eine 4-Tages Veranstaltung, da 80 Zeichen
' Meldung am Tag 1 für: A1 und S1
' Meldung am Tag 2 für: A1 und S1 und Spiel-X
' Meldung am Tag 3 für: A3 und J3 und Spiel-Z
' Meldung am Tag 4 für: A2 und S2 und Spiel-Y
' Das Protokoll beurteilt nicht die Sinnhaftigkeit von Meldungen. Wie mit den Daten umzugehen ist, entscheidet der Empfänger.
 
 
Feld 51:  Meldestatus' Der Meldestatus besteht aus so vielen Zeichen, wie die Veranstaltung Tage hat.
' 0=nicht gemeldet / 1= gemeldet / 2=bestätigt / 3=auf Warteliste
' 0123
' offenbar eine 4-Tages-Veranstaltung, da vier Zeichen
' Tag 1: nicht gemeldet ("0" = nicht gemeldet am Tag 1)
' Tag 2: gemeldet ("1" = möchte starten am Tag 2)
' Tag 3: bestätigt ("2" = startet am Tag 3)
' Tag 4: auf Warteliste ("3" = startet ggf. am Tag 4)
 
 
Feld 52:  Mannschaftsname' Sofern Mannschaften meldbar sind. Eine Unterscheidung nach Tagen für ein einzelnes Team ist nicht vorgesehen.
 
 
Feld 53:  Mannschafts-Meldung' Die Mannschaftsmeldung besteht aus so vielen Zeichen, wie die Veranstaltung Tage hat.
' 0=nicht gemeldet / 1=gemeldet
' Beispiel:
' 1010
' offenbar eine 4-Tages-Veranstaltung, da vier Zeichen
' Tag 1: Startet in der Mannschaft
' Tag 2: Startet NICHT in der Mannschaft
' Tag 3: Startet in der Mannschaft
' Tag 4: Startet NICHT in der Mannschaft
 
 
Feld 54:  Helfer-Information' Die Helfer-Information besteht aus so vielen Zeichen, wie die Veranstaltung Tage hat.
' 0=steht NICHT als Helfer zur Verfügung / 1=steht als Helfer zur Verfügung / 2=ist als Helfer bestätigt
' Beispiel:
' 0012
' offenbar eine 4-Tages-Veranstaltung, da vier Zeichen
' Tag 1: Steht NICHT als Helfer zur Verfügung
' Tag 2: Steht NICHT als Helfer zur Verfügung
' Tag 3: Steht als Helfer zur Verfügung
' Tag 4: Ist als Helfer bestätigt
 
 
Feld 55:  Camping-Information' Die Camping-Information besteht aus so vielen Zeichen, wie die Veranstaltung Tage hat.
' Jede Ziffer repräsentiert die Art des angemeldeten Campings.
' 0=keine Camping / 1=Zelt klein / 2=Zelt gross / 3=PKW mit Hänger / 4=Wohnmobil klein / 5=Wohnmobil groß / usw...
' Eine konkrete Definition was "klein" oder "groß" beinhaltet, ist (bisher) nicht definiert
' Beispiel:
' 0145
' offenbar eine 4-Tages-Veranstaltung, da vier Zeichen
' Tag 1: kein Camping
' Tag 2: Camping, kleines Zelt
' Tag 3: Camping, Wohnmobil klein
' Tag 4: Camping, Wohnmobil groß
 
 
Feld 56:  Bezahltes Startgeld' Insgesamt bisher bezahltes Startgeld, Betrag in Cent, für das Team (NICHT den HF), alle Tage
' Beispiel:
' 4560
' entspricht 45,60 Euro
 
 
Feld 57:  Startgeld-Status' Der Startgeld-Status besteht aus EINEM Zeichen für alle Tage:
' 0=Startgeld Status nicht eingepflegt
' 1=Startgeld insgesamt unvollständig
' 2=Startgeld insgesamt vollständig
' Beispiel:
' 1
' Startgeld insgesamt unvollständig
 
 
Feld 58...59' AUX für Meldungen
 
Feld 60...79' AUX für weitere Imformationen
 
Beispiel einer(Feld   0...19): Hasso;Hasso von der grünen Weide;Dackel;01.07.2022;05:12:2048;LB4711;123456789012345;DVG;43;M;0;;;;;;;;;;
Teamzeile: (Feld 20...39): Max;Mustermann;09.02.2000;abc@abc.de;017105150815;MGL007;BVB;DFB;W;;;;;;;;;;;;
(Feld 40...49): ;0;;;;;;;;;
(Feld 50...59): 01000000010000000000010000000100000010000100000000000000000001000000010000000100;0121;Lustige Truppe;1010;0012;0145;4560;1;;;
(Feld 60...79): ;;;;;;;;;;;;;;;;;;;;
 
Seitenanfang


DETAILS - BLOCK 3, FOOTER
 
Letzte Zeile:[EOF]' Fester Text: "[EOF]"
 
Seitenanfang


BEISPIEL EINES KOMPLETTEN FILES MIT EINEM TEAM, SEPARATOR ";" UND OHNE ABSENDERKENNUNG:
 
DogSportOpenTxData;AGI;1.00;59;;;1;338;
Hasso;Hasso von der grünen Weide;Dackel;01.07.2022;05:12:2048;LB4711;123456789012345;DVG;43;M;;;;;;;;;;;Max;Mustermann;09.02.2000;abc@abc.de;017105150815;MGL007;BVB;DFB;W;;;;;;;;;;;;;0;;;;;;;;; 01000000010000000000010000000100000010000000000000000000000001000000010000000100;0123;Lustige Truppe;1010;0012;0145;4560;1;;;;;;;;;;;;;;;;;;;;;;;
[EOF]
 
Seitenanfang



Im Agility-Turnier V6-SP werden folgende Felder ausgewertet:

Zeile 0:Feld 0: DogSportOpenTxData ' Pflichtfeld: Inhalt: "DogSportOpenTxData"
Feld 1: Sportart ' Pflichtfeld: Inhalt: "AGI"
Feld 2: Version ' Pflichtfeld: Inhalt: "1.00"
Feld 3: Separator ' Pflichtfeld: Inhalt: frei wählbar / 1 bis 255
Feld 4: USER (Absenderkennung)' Pflichtfeld: Inhalt: zwischen 5 und 10 Zeichen
Feld 6: Teamcount ' Pflichtfeld: Inhalt: zwischen 1 und 999, muß mit der Anzahl der Teamdaten-Zeilen übereinstimmen
Feld 7: Checksumme ' Pflichtfeld: Inhalt: "0" oder übereinstimmende Anzahl der Zeichen aller Teamdaten (inkl. Trennzeichen, ohne CRLF, ANSI-Notation)
Abweichende Angaben verursachen das Ablehnen des kompletten Files.
 
Zeile 1..999:Feld 00: HD-Name ' Pflichtfeld: Inhalt: 2 bis 15 Zeichen
Feld 02: HD-Rasse ' Pflichtfeld: Muss Element aus Rassenliste sein
Feld 05: HD-LB-Nummer ' Pflichtfeld: Inhalt: 2 bis 18 Zeichen
Feld 06: HD-Chipnummer ' Pflichtfeld: Inhalt: 15 Ziffern
Feld 07: HD-Verband ' Pflichtfeld: Muss Element aus Verbandsliste sein
Feld 08: HD-Größe ' Pflichtfeld. Inhalt: zwischen 10 und 150 in ganzen cm oder "S", "M", "I", "L"
Feld 10: HD-Einmessen ' Pflichtfeld. Inhalt: "0"=IST eingemessen oder "1"=muss eingemessen werden
 
Feld 20: HF-Vorname ' Pflichtfeld: Inhalt: 2 bis 20 Zeichen
Feld 21: HF-Nachname ' Pflichtfeld: Inhalt: 2 bis 25 Zeichen
Feld 22: HF-Geburtsdatum ' Pflichtfeld: Muss ein existierendes Datum sein. Das resultierende Alter (am Veranstaltungstag) muss zwischen 5 und 100 Jahren sein.
Feld 23: HF-Mailadresse ' Kannfeld: Inhalt: 0 bis 50 Zeichen
Feld 24: HF-Telefonnr. ' Kannfeld: Inhalt: 0 bis 20 Zeichen
Feld 25: HF-Mitgliedsnr. ' Pflichtfeld: Inhalt: 2 bis 18 Zeichen
Feld 26: HF-Verein ' Pflichtfeld: Inhalt: 2 bis 30 Zeichen
Feld 27: HF-Verband ' Pflichtfeld: Inhalt: 2 bis 10 Zeichen
 
Feld 41: PARA-Team ' Pflichtfeld: Inhalt: "0"=kein Parateam oder "1"=Parateam
Feld 50: Meldestring ' Pflichtfeld: Technische Prüfung: min 20, max 160 Zeichen / Feldlänge mod 20 = 0 / erlaubte Zeichen = "0" oder = "1"
Feld 51: Melde-Status ' Pflichtfeld: min 1, max 8 Zeichen / erlaubte Zeichen = "0", "1", "2", "3"
Feld 52: Mannschaftsname ' Pflichtfeld wenn Mannschaftsmeldung nicht leer / max 25 Zeichen
Feld 52: Mannschafts-Meldung ' Pflichtfeld wenn Mannschaftsname angegeben / max 8 Zeichen
Feld 56: bezahltes Startgeld ' Pflichtfeld wenn Startgeld-Status ungleich 0 / max 5 Ziffern
Feld 57: Startgeld-Status ' Pflichtfeld wenn Startgeld ungleich 0 / erlaubte Zeichen "0", "1", "2"
Abweichende Angaben verursachen das Ablehnen des Teams mit Fehlerangabe. Zusätzliche Angaben werden nicht ausgewertet.
Widersprüchliche Meldeangaben führen ebenfalls zum Ablehnen eines Teams:
- Parcoursmeldung mit Status "0" am selben Tag
- Keine Parcoursmeldungen aber Status <> "0" am selben Tag
- Mannschaftsmeldung ohne Parcoursmeldungen am selben Tag
 
Letzte Zeile:Footer ' Pflichtfeld: Inhalt: "[EOF]"
Abweichende Angaben verursachen das Ablehnen des kompletten Files.
 
Seitenanfang


BEISPIEL EINES KOMPLETTEN FILES MIT EINEM TEAM, SEPARATOR ";" UND OHNE ABSENDERKENNUNG:
 
DogSportOpenTxData;AGI;1.00;59;;;1;338;
Hasso;Hasso von der grünen Weide;Dackel;01.07.2022;05:12:2048;LB4711;123456789012345;DVG;43;M;;;;;;;;;;;Max;Mustermann;09.02.2000;abc@abc.de;017105150815;MGL007;BVB;DFB;W;;;;;;;;;;;;;0;;;;;;;;; 01000000010000000000010000000100000010000000000000000000000001000000010000000100;0123;Lustige Truppe;1010;0012;0145;4560;1;;;;;;;;;;;;;;;;;;;;;;;
[EOF]
 
Das File würde komplett abgelehnt, da keine Absenderkennung angegeben ist.
Die Teamzeile würde abgelehnt, da am Tag 1 Meldungen in A1 und S1 angegeben sind, aber der Status am Tag 1 "0" (keine Meldung) ist.
Die Teamzeile würde abgelehnt, da am Tag 1 eine Mannschaftsmeldung angegeben ist, aber der Status am Tag 1 "0" (keine Meldung) ist.
 
Seitenanfang


ANHANG VERBANDSLISTE:  
ADRKBCDBK
BLVCfBrHDBC
dhvDKBSDMC
DSVDVDVG
HSVRMIBCKFT
PSKRSVRZV
SGSVSVSWHV
VDPAusland
Seitenanfang
 


ANHANG RASSENLISTE:  
Affenpinscher Afghanischer Windhund Airedale Terrier Akita
Alaskan Malamute Alpenländische Dachsbracke American Cocker Spaniel American Staffordshire Terrier
Appenzeller Sennenhund Ariégeois Australian Cattle Dog Australian Kelpie
Australian Shepherd Australian Silky Terrier Australian Terrier Barbet
Basset Hound Bayerischer Gebirgsschweißhund Beagle Bearded Collie
Beauceron Bedlington Terrier Belgischer Griffon Belgischer Schäferhund
Bergamasker Hirtenhund Berger de Picardie Berger des Pyrénées Berner Sennenhund
Bernhardiner Bichon à poil frisé Bobtail Bolonka Zwetna
Bordeauxdogge Border Collie Border Terrier Boston Terrier
Bouvier des Ardennes Bouvier des Flandres Brandlbracke Brasilianischer Terrier
Briard Broholmer Bull Terrier Bulldog
Bullmastiff Cairn Terrier Cane Corso Italiano Cao da Serra de Aires
Cao de Agua portugues Carpatin Cavalier King Charles Spaniel Chesapeake Bay Retriever
Chihuahua Chodsky Pes Collie Coton de Tuléar
Curly Coated Retriever Dackel Dalmatiner Danish-Swedish Farmdog
Deutsch Drahthaar Deutsch Kurzhaar Deutsch Langhaar Deutsche Dogge
Deutscher Boxer Deutscher Jagdterrier Deutscher Pinscher Deutscher Schäferhund
Deutscher Spitz Deutscher Wachtelhund Dobermann English Cocker Spaniel
English Pointer English Setter English Springer Spaniel English Toy Terrier
Entlebucher Sennenhund Epagneul Breton Eurasier Finnischer Lapphund
Flat Coated Retriever Fox Terrier Golden Retriever Gonczy Polski
Gordon Setter Gos d'Atura Catalá Grand Basset Griffon Vendéen Großer Schweizer Sennenhund
Hannoverscher Schweißhund Havaneser Holländischer Schäferhund Hovawart
Hrvatski Ovcar Irish Setter Irish Soft Coated Wheaten Terrier Irish Terrier
Irish Wolfhound Islandhund Italienisches Windspiel Jack Russell Terrier
Japan Spitz Karelischer Bärenhund Kerry Blue Terrier King Charles Spaniel
Kritikos Lagonikos Kromfohrländer Labrador Retriever Laekenois
Lagotto Romagnolo Lakeland Terrier Lancashire Heeler Landseer
Leonberger Lhasa Apso Löwchen Magyar Vizsla
Malteser Manchester Terrier Miniature American Shepherd Miniature Bull Terrier
Mix Mops Mudi Münsterländer
Nederlandse Kooikerhondje Neufundländer Norfolk Terrier Norwegischer Elchhund
Norwegischer Lundehund Norwich Terrier Nova Scotia Duck Tolling Retriever Österreichischer Pinscher
Papillon Parson Russell Terrier Perro de Agua Español Phalene
Pharaoh Hound Podenco Andaluz Podenco Canario Podengo Portugues
Polski Owczarek Nizinny Prager Rattler Presa Canario Pudel
Pudelpointer Puli Pumi Pyrenäen-Berghund
Rhodesian Ridgeback Rottweiler Russischer Schwarzer Terrier Samojede
Schapendoes Schipperke Schnauzer Segugio Maremmano
Shetland Sheepdog Shiba Shih Tzu Siberian Husky
Silken Windsprite Spinone Italiano Staffordshire Bull Terrier Steirische Rauhhaarbracke
Tibet Spaniel Tibet Terrier Tschechoslowakischer Wolfhund Västgötaspets
Weimaraner Weißer Schweizer Schäferhund Welsh Corgi Cardigan Welsh Corgi Pembroke
Welsh Springer Spaniel West Highland White Terrier Welsh Terrier Westfalenterrier
Whippet Xoloitzcuintle Yorkshire Terrier Zwergpinscher
Seitenanfang