Zum Inhalt springen

Sephyr

Mitglieder
  • Gesamte Inhalte

    13
  • Benutzer seit

  • Letzter Besuch

  1. Hallo, ich weiß, dieser Thread ist schon ein paar Tage alt, aber dieses Thema interessiert mich sehr. Könnte mir jemand ein Beispiel für Bubbles Lösung geben?
  2. Könnte mir wirklich weiterhelfen... Und wo wir schonmal dabei sind: Ist es möglich Schlüssel nur innerhalb eines Elements bzw. einer Stufe innerhalb eines Elementes zu verteilen?
  3. Genau das habe ich gesucht, Vielen Dank
  4. Hallo, vielen Dank für deine Antwort, aber könntest du mir bittebitte ein Beispiel zum vergeben von Fremdschlüssel posten, wäre dir da sehr dankbar! Viele Grüße
  5. Hallo, Ich habe eine herrausforderung ein XML-Schema betreffend. Ich will zwei Attribute in einem Element haben, welche entweder zusammen oder gar nicht angegeben werden sollen: <subparam name="art" nullable="false" type="[…].business.transfer.UrlaubArt" /> <subparam name="zeitraumStart" nullable="false" [COLOR="Red"]relation="le" relationAttr="zeitraumEnde"[/COLOR] type="java.util.Date" /> Mein Schema sieht bis jetzt so aus: <xsd:complexType name="subparamType"> <xsd:sequence> <xsd:element name="subparam" type="subparamType" maxOccurs="unbounded" minOccurs="0"></xsd:element> </xsd:sequence> <xsd:attributeGroup ref="nameAttr"></xsd:attributeGroup> <xsd:attributeGroup ref="paramAttr"></xsd:attributeGroup> <xsd:attributeGroup ref="subparamAttr"></xsd:attributeGroup> </xsd:complexType> […] <xsd:attributeGroup name="subparamAttr"> <xsd:attribute name="relationAttr" use="required" type="xsd:string"></xsd:attribute> <xsd:attribute name="relation" use="required" type="vergleich"></xsd:attribute> </xsd:attributeGroup> <xsd:simpleType name="vergleich"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="e"/> <xsd:enumeration value="g"/> <xsd:enumeration value="l"/> <xsd:enumeration value="ge"/> <xsd:enumeration value="le"/> </xsd:restriction> </xsd:simpleType> 1. Gibt es eine Möglichkeit dieses Problem zu lösen? 2. Gibt es eine Möglichkeit zu definieren, dass der Wert des relationAttr-Attributs eine gültige ID innerhalb des Dokuments ist? Danke und Gruss
  6. Hallo, Ich habe eine herrausforderung ein XML-Schema betreffend. Ich will zwei Attribute in einem Element haben, welche entweder zusammen oder gar nicht angegeben werden sollen: <subparam name="art" nullable="false" type="[…].business.transfer.UrlaubArt" /> <subparam name="zeitraumStart" nullable="false" [COLOR="Red"]relation="le" relationAttr="zeitraumEnde"[/COLOR] type="java.util.Date" /> Mein Schema sieht bis jetzt so aus: <xsd:complexType name="subparamType"> <xsd:sequence> <xsd:element name="subparam" type="subparamType" maxOccurs="unbounded" minOccurs="0"></xsd:element> </xsd:sequence> <xsd:attributeGroup ref="nameAttr"></xsd:attributeGroup> <xsd:attributeGroup ref="paramAttr"></xsd:attributeGroup> <xsd:attributeGroup ref="subparamAttr"></xsd:attributeGroup> </xsd:complexType> […] <xsd:attributeGroup name="subparamAttr"> <xsd:attribute name="relationAttr" use="required" type="xsd:string"></xsd:attribute> <xsd:attribute name="relation" use="required" type="vergleich"></xsd:attribute> </xsd:attributeGroup> <xsd:simpleType name="vergleich"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="e"/> <xsd:enumeration value="g"/> <xsd:enumeration value="l"/> <xsd:enumeration value="ge"/> <xsd:enumeration value="le"/> </xsd:restriction> </xsd:simpleType> 1. Gibt es eine Möglichkeit dieses Problem zu lösen? 2. Gibt es eine Möglichkeit zu definieren, dass der Wert des relationAttr-Attributs eine gültige ID innerhalb des Dokuments ist? Danke und Gruss
  7. at sich erledigt, ich habe das Schema noch nicht korrekt eingebunden: <project xmlns:val="validationSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Z:\COMUGA\PPP\comuga-service\web\src\main\resources\validationSchemaNeu.xsd"> Mit dem XML Copy Editor und einem Schema-Validierer aus dem Netz bin ich sehr weit gekommen.
  8. Hallo, Ich habe folgendes Problem ich habe ein XML-Schema: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="project" type="projectType"> <xsd:complexType name="projectType"> <xsd:sequence> <xsd:element name="package" type="packageType" maxOccurs="unbounded" minOccurs="1"> </xsd:element> </xsd:sequence> <xsd:attributeGroup ref="nameAttr"></xsd:attributeGroup> </xsd:complexType> </xsd:element> <xsd:complexType name="packageType"> <xsd:sequence> <xsd:element name="class" type="classType" maxOccurs="1" minOccurs="1"> </xsd:element> </xsd:sequence> <xsd:attributeGroup ref="nameAttr"></xsd:attributeGroup> </xsd:complexType> <xsd:complexType name="classType"> <xsd:sequence> <xsd:element name="method" type="methodType" maxOccurs="unbounded" minOccurs="1"></xsd:element> </xsd:sequence> <xsd:attributeGroup ref="nameAttr"></xsd:attributeGroup> </xsd:complexType> <xsd:complexType name="methodType"> <xsd:sequence> <xsd:element name="param" type="paramType" maxOccurs="unbounded" minOccurs="0"></xsd:element> </xsd:sequence> <xsd:attributeGroup ref="nameAttr"></xsd:attributeGroup> </xsd:complexType> <xsd:complexType name="paramType"> <xsd:sequence> <xsd:element name="subparam" type="subparamType" maxOccurs="unbounded" minOccurs="0"></xsd:element> </xsd:sequence> <xsd:attributeGroup ref="nameAttr"></xsd:attributeGroup> <xsd:attributeGroup ref="paramAttr"></xsd:attributeGroup> </xsd:complexType> <xsd:complexType name="subparamType"> <xsd:sequence> <xsd:element name="subparam" type="subparamType" maxOccurs="unbounded" minOccurs="0"></xsd:element> </xsd:sequence> <xsd:attributeGroup ref="nameAttr"></xsd:attributeGroup> <xsd:attributeGroup ref="paramAttr"></xsd:attributeGroup> </xsd:complexType> <xsd:attributeGroup name="nameAttr"> <xsd:attribute name="name" use="required" type="xsd:string"></xsd:attribute> </xsd:attributeGroup> <xsd:attributeGroup name="paramAttr"> <xsd:attribute name="type" use="required" type="xsd:string"></xsd:attribute> <xsd:attribute name="nullable" use="required" type="xsd:boolean"></xsd:attribute> </xsd:attributeGroup> </xsd:schema> Und ein XML-Dokument welches auf dieses Schema verweist: <val:project xmlns:val="validationSchema.xsd" name="comuga"> <val:class> </val:class> <val:package name="com.XXX.comugaservice.business.delegate.hibernate"> <val:class> </val:class> <val:class name="BdHibernate"> <val:method name="ablehnenUrlaub"> <val:param name="urlaubsID" nullable="true" type="int" /> <val:param name="userComsi" nullable="false" type="java.lang.String" /> </val:method> <val:method name="ablehnenWechselnOrganisation"> <val:param name="comsiMitarbeiter" nullable="false" type="java.lang.String" /> <val:param name="comsiBenutzer" nullable="false" type="java.lang.String" /> </val:method> <val:method name="anzeigenUrlaub"> […] Nun folgendes Problem: Wenn ich dieses XML-Dokument mittels Dom4J validieren (möchte) geht das Dokument glatt durch, obwohl (zu Testzwecken) das Class-Element im package nur einmal vorhanden sein darf bzw. NUR im package vorhanden sein darf, ausserdem sollte das Attribut "name" required sein! Woran kann der Fehler (dass kein Fehler auftritt) liegen oder wie kann ich mein XML-Dokument ordentlich validieren? Eigentlich soll jedes Element ausschliesslich in seiner "Ebene" existieren. Ich habe mir Thema XML-Schema in den letzten beiden Tagen versucht anzueignen, daher wäre ich dankbar für jeden verbesserungsvorschlag, zu dem Schema. Danke und Gruss
  9. xmlns:val="validationSchema.xsd" muss natürlich rausgestrichen werden!:eek:hells:
  10. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE val:project[ <!ELEMENT val:project (val:package)> <!ATTLIST val:project name ID #REQUIRED> <!ELEMENT val:package (val:class*)> <!ATTLIST val:package name ID #REQUIRED> <!ELEMENT val:class (val:method*)> <!ATTLIST val:class name ID #REQUIRED> <!ELEMENT val:method (val:param*)> <!ATTLIST val:method name ID #REQUIRED> <!ELEMENT val:param (val:subparam*)> <!ATTLIST val:param name ID #REQUIRED type CDATA #REQUIRED nullable (true|false) #REQUIRED> <!ELEMENT val:subparam (val:subparam*)> <!ATTLIST val:subparam name ID #REQUIRED type CDATA #REQUIRED relation CDATA #IMPLIED nullable (true|false) #REQUIRED> ]> <val:project xmlns:val="validationSchema.xsd" name="comuga"> <val:package name="service.business.delegate.hibernate"> <val:class name="BdHibernate"> <val:method name="ablehnenUrlaub"> <val:param name="[COLOR="red"]urlaubsID[/COLOR]" nullable="[COLOR="red"]true[/COLOR]" type="[COLOR="red"]int[/COLOR]" /> <val:param name="userID" nullable="false" type="java.lang.String" /> </val:method> <val:method name="ablehnenWechselnOrganisation"> <val:param name="IDMitarbeiter" nullable="false" type="java.lang.String" /> <val:param name="IDBenutzer" nullable="false" type="java.lang.String" /> </val:method> <val:method name="anzeigenUrlaub"> <val:param name="filterdaten" nullable="false" type="service.business.transfer.ToFilterdaten"> <val:subparam name="person" nullable="false" type="service.business.transfer.ToPerson"> <val:subparam name="ID" nullable="false" type="java.lang.String" /> </val:subparam> <val:subparam name="von" nullable="true" relation="le bis" type="java.util.Date" /> <val:subparam name="bis" nullable="true" relation="ge von" type="java.util.Date" /> </val:param> <val:param name="userID" nullable="false" type="java.lang.String" /> </val:method> <val:method name="bestaetigenWechselnOrganisation"> <val:param name="IDMitarbeiter" nullable="false" type="java.lang.String" /> <val:param name="IDBenutzer" nullable="false" type="java.lang.String" /> </val:method> <val:method name="einsehenUrlaub"> <val:param name="filterdaten" nullable="false" type="service.business.transfer.ToFilterdaten"> <val:subparam name="von" nullable="true" relation="le bis" type="java.util.Date" /> <val:subparam name="bis" nullable="true" relation="ge von" type="java.util.Date" /> </val:param> <val:param name="personen" nullable="false" type="org.hibernate.mapping.Set" /> </val:method> <val:method name="erfassenPerson"> <val:param name="person" nullable="false" type="service.business.transfer.ToPerson"> <val:subparam name="ID" nullable="false" type="java.lang.String" /> <val:subparam name="organisationsEinheit" nullable="false" type="service.business.transfer.ToOrganisation" /> </val:param> <val:param name="IDBenutzer" nullable="false" type="java.lang.String" /> </val:method> <val:method name="erfassenStellvertreter"> <val:param name="organisationsId" nullable="true" type="int" /> <val:param name="IDMitarbeiter" nullable="false" type="java.lang.String" /> <val:param name="IDBenutzer" nullable="false" type="java.lang.String" /> </val:method> <val:method name="erfassenUrlaub"> <val:param name="urlaub" nullable="false" type="service.business.transfer.ToUrlaub"> <val:subparam name="art" nullable="false" type="service.business.transfer.UrlaubArt" /> <val:subparam name="zeitraumStart" nullable="false" relation="le zeitraumEnde" type="java.util.Date" /> <val:subparam name="zeitraumEnde" nullable="false" relation="ge zeitraumStart" type="java.util.Date" /> </val:param> <val:param name="ID" nullable="false" type="java.lang.String" /> </val:method> <val:method name="loeschenPerson"> <val:param name="IDMitarbeiter" nullable="false" type="java.lang.String" /> <val:param name="IDBenutzer" nullable="false" type="java.lang.String" /> </val:method> <val:method name="loeschenStellvertreter"> <val:param name="organisationsId" nullable="true" type="int" /> <val:param name="IDMitarbeiter" nullable="false" type="java.lang.String" /> <val:param name="IDBenutzer" nullable="false" type="java.lang.String" /> </val:method> <val:method name="zuweisenOrganisation"> <val:param name="organisation" nullable="true" type="int" /> <val:param name="IDMitarbeiter" nullable="false" type="java.lang.String" /> <val:param name="IDBenutzer" nullable="false" type="java.lang.String" /> </val:method> <val:method name="ablehnenUrlaub"> <val:param name="urlaubsId" nullable="true" type="int" /> <val:param name="ID" nullable="false" type="java.lang.String" /> </val:method> <val:method name="genehmigenUrlaub"> <val:param name="urlaubsId" nullable="true" type="int" /> <val:param name="ID" nullable="false" type="java.lang.String" /> </val:method> <val:method name="stornierenUrlaub"> <val:param name="urlaubsId" nullable="true" type="int" /> <val:param name="ID" nullable="false" type="java.lang.String" /> </val:method> <val:method name="anzeigenOrganisation"> <val:param name="ID" nullable="false" type="java.lang.String" /> </val:method> <val:method name="anzeigenOrganisationen"></val:method> <val:method name="wechselnOrganisation"> <val:param name="organisation" nullable="true" type="int" /> <val:param name="ID" nullable="false" type="java.lang.String" /> </val:method> <val:method name="bestaetigenWechselnOrganisation"> <val:param name="IDMitarbeiter" nullable="false" type="java.lang.String" /> <val:param name="IDBenutzer" nullable="false" type="java.lang.String" /> </val:method> <val:method name="ablehnenWechselnOrganisation"> <val:param name="IDMitarbeiter" nullable="false" type="java.lang.String" /> <val:param name="IDBenutzer" nullable="false" type="java.lang.String" /> </val:method> </val:class> </val:package> </val:project> die Daten, die ich benötige habe ich rot markiert. Wie gesagt, möglichst ohne viele Schleifen und ifs:rolleyes:
  11. naja, nicht ganz, ich möchte diese übertrieben große Schleifenkonstruktion vereinfachen. die führt mich zwar zum Ziel, benötigt aber zu viel Performance. Ich möchte alle Parameter genau einer Methode, genau einer Klasse, genau eines Packages haben. Es kann aber von allen mehrere geben, d.h. mehrere Packages, Klassen, Methoden. Ideal wäre ElementByID auf package, dann die kinder per id nach der klasse, dann deren Kinder nach Methoden durchsuchen. Das funktioniert aber nicht, selbst wenn ich die ID ganz einfach ohne XSD sondern nur per DTD deklariere. verzweifle echt daran!
  12. Hallöchen, ich würde gerne auf die params der methode /projekt/test.hibernate/BdHibernate/ablehnenUrlaub zugreifen. Wie kann ich das mit DOM4J realisieren? bisher sieht das ganze so aus: try { SAXReader saxReader = new SAXReader(); Document document = saxReader.read(this.getXmlFile()); List packageList = document.selectNodes("//val:package"); for (int i = 0; i < packageList.size(); i++) { DefaultElement packageAttribute = (DefaultElement) packageList.get(i); if (((String) packageAttribute.attributeValue("name")) .equalsIgnoreCase(packageName)) { List classList = ((DefaultElement) packageList.get(i)).selectNodes("val:class"); for (int j = 0; true || j < classList.size(); j++) { DefaultElement classAttribute = (DefaultElement) classList .get(j); if (((String) classAttribute.attributeValue("name")) .equalsIgnoreCase(simpleClassName)) { List methodList = ((DefaultElement) classList .get(j)).selectNodes("val:method"); for (int k = 0; k < methodList.size(); k++) { DefaultElement methodAttribute = (DefaultElement) methodList .get(k); if (((String) methodAttribute .attributeValue("name")) .equalsIgnoreCase(methodName)) { System.out.println(methodAttribute .attributeValue("name")); List parameterList = ((DefaultElement) methodList .get(k)).selectNodes("val:param"); parameterIterieren(parameterList); } } } } } } } catch (Exception e) { System.out.println(e); } } XML-Dokument <?xml version="1.0" encoding="UTF-8"?> <val:project xmlns:val="validationSchema.xsd" name="projekt"> <val:package name="test.hibernate"> <val:class name="BdHibernate"> <val:method name="ablehnenUrlaub"> <val:param name="urlaubsID" nullable="true" type="int" /> <val:param name="userID" nullable="false" type="java.lang.String" /> </val:method> </val:class> </val:package> </val:project> XSD-Schema: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="project" type="projectType" /> <xsd:key name="packageName"> <xsd:selector>package</xsd:selector> <xsd:field>@name</xsd:field> </xsd:key> <xsd:key name="className"> <xsd:selector>class</xsd:selector> <xsd:field>@name</xsd:field> </xsd:key> <xsd:key name="methodName"> <xsd:selector>method</xsd:selector> <xsd:field>@name</xsd:field> </xsd:key> <xsd:complexType name="projectType"> <xsd:sequence> <xsd:element name="package" type="packageType" minOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="class" type="classType" minOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="method" type="methodType" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="param" type="paramType" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="subparam" type="subparamType" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element ref="subparam" minOccurs="0" /> </xsd:sequence> <xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="type" use="required" type="xsd:string" /> <!-- <xsd:attribute name="relation" use="optional" type="xsd:string"/> --> <xsd:attribute name="nullable" use="required" type="xsd:boolean" /> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="type" use="required" type="xsd:string" /> <xsd:attribute name="nullable" use="required" type="xsd:boolean" /> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attributes name="name" use="required" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attributes name="name" use="required" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="name" use="required" type="xsd:string" /> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute name="name" use="required" type="xsd:string" /> </xsd:complexType> </xsd:schema> ich hoffe auf eure Hilfe, vielen Dank!!!!!
  13. hallo, ich habe folgendes Problem: ich möchte eine Klasse schreiben, die Eingabeparameter mit einer XML-Datei auf null überprüft. Die XML-Datei hat folgendes Format: <package name="packagename"> <class name="classname"> <method name="methodname"> <param name="parametername1" checknull="true" type="komplexertyp"> <subparam name="subparametername1" checknull="true" type="String"> </subparam> </param> </method> </class> </package> ich möchte auf den Wert des subparametername1 zugreifen. mir ist bekannt, welchen Typ er hat und in welchem Objekt er steckt, allerdings habe ich nur das komplexe Objekt parametername1. Es kann noch mehrere andere subparameter geben. Ich müsste irgendwie aus einem String wie "packagename.parametername1.subparametername1" auf den Inhalt dieses Feldes kommen. Vielen Dank für eure Hilfe

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...