Forum Chouette.mobi : normes et outils pour les échanges de données TC

Normes : Neptune, SIRI, Netex => Profil Neptune => Discussion démarrée par: Marc Deldem le juin 13, 2017, 09:27:03 am

Titre: TridentIdType et expression régulière
Posté par: Marc Deldem le juin 13, 2017, 09:27:03 am
Bonjour,

Je suis un nouveau venu sur le profil NEPTUNE.
En étudiant les XSD (neptune.xsd et trident_Global_schema.xsd), il y a quelque chose qui m'échappe sur la contrainte au niveau expression régulière pour le type TridentIdType.
 
Dans le document trident_Global_schema.xsd, on a:
Citer
  <xsd:simpleType name="TridentIdType">
    <xsd:annotation>
      <xsd:documentation>
   Defines the way an TRIDENT ID has to be built:
   {PeerID}:{Class name}:{Progressive integer}
   For example: RATP:Event:12332  or  ATAC:Line:9987
   2011-03-14 : Progressive integer may accept numeric, alphabetic, underscore and dash characters
                for Siri and Netex future compatibility
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="(\w|_)+:\w+:([0-9A-Za-z]|_|-)+"/>
    </xsd:restriction>
  </xsd:simpleType>

L'expression régulière pour un TridentIdType est donc:
Citer
(\w|_)+:\w+:([0-9A-Za-z]|_|-)+

L'identifiant se décompose donc en 3 parties, {PeerID}:{Class name}:{Progressive integer}.
Ce que je ne comprends pas c'est sur le {PeerID}, puisque l'expression régulière correspondante est: (\w|_)+

\w indique un caractère alphanumérique ou un tiret de soulignement. Cela correspond à [a-zA-Z0-9_]

Je ne vois donc pas de différence entre:

Est-ce que quelqu'un pourrait m'éclairer ?
Merci.

Marc Deldem
Titre: Re : TridentIdType et expression régulière
Posté par: Aurige le juin 23, 2017, 11:55:39 am
Bonjour
J'avoue ne pas me souvenir pourquoi de pattern est décrit de cette façon (cela remonte au projet TRIDENT en 2002), mais vous avez raison, il n'y a à priori pas de différence entre ces deux formes (peut être un contournement de bug dans les outils de l'époque, mais c'est effectivement étrange).
Cordialement