Frage

Ohne zu sehr ins Detail zu gehen suchen wir die Verwendung von XML als Meta-Daten Einschränkungen für Eigenschaften zu beschreiben (Dies ist ein cutdown Beispiel und XSD nicht unser vorgeschlagenen komplexes Modell unterstützen), gibt es zwei Möglichkeiten in Betracht gezogen werden, die von das folgende XML strucutures macht mehr Sinn?

Option 1)

<?xml version="1.0" encoding="us-ascii"?>
<Properties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <Property type="string">
      <name>quanitity</name>
      <contraints>
         <contraint type="isRequired">
            <value>true</value>
         </contraint>
         <contraint type="regex">
            <value>^[0-9]$</value>
         </contraint>
         <contraint type="regex">
            <value>^[a-zA-Z]$</value>
         </contraint>
      </contraints>
   </Property>
</Properties>

Option 2)

<?xml version="1.0" encoding="us-ascii"?>
<Properties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <Property type="string">
      <name>quantity</name>
      <IsRequired>true</IsRequired>
      <Regex>^[0-9]$</Regex>
      <Regex>^[a-zA-Z]$</Regex>
   </Property>
</Properties>
War es hilfreich?

Lösung

würde ich wahrscheinlich für Option # 2 gehen, wie der XML-Job eine bessere Arbeit, die Daten zu beschreiben (die schließlich ist das, was XML tun sollte), und ist daher leichter zu lesen und weniger ausführlich. Option 1 ist ein wenig in der Nähe <name> und <value> Tags für meinen Geschmack zu haben.

Andere Tipps

Für Flexibilität, würde ich mit # 1 gehen. Dies ermöglicht es Ihnen, viele verschiedene Arten von Einschränkungen und benutzerdefinierten Regeln.

hinzufügen

Es hängt davon ab, wie Sie analysieren wollen / Prozess der XML und wenn Sie wollen, dass es validieren können.

Von einer Validierungs Sicht (wenn Sie erwägen, die automatische Validierung über eine XSD bei der Kompilierung) Option 2 ist die bessere Wahl, da der Inhalt der Variablen einen bestimmten Typen hat (zB ein regulärer Ausdruck), während der <value> Tag nicht für die korrekten Inhalte überprüft werden kann.

Auch würde ich wahrscheinlich mit Option gehe 2 über die Analyse und Verarbeitung, wenn Sie einen SAX-Parser verwenden, wie Sie Zustände, basierend auf dem Tags wechseln könnten.

Persönlich würde ich mit dem ersten gehen, ich vermute, es wäre einfacher, Code zu schreiben, Fehler zu analysieren und zu tun Check-in. Außerdem macht es mehr Sinn semantisch zu meinem Gehirn.

Das heißt, ich glaube, Sie werden feststellen, es ist die persönliche Wahl ", entweder in Ordnung ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top