XML-Tag mit mehreren Attributen prüfen

jamax

Mitglied
Thread Starter
Dabei seit
16.04.2007
Beiträge
51
Reaktionspunkte
0
Hallo Freunde,

Nochmal eine Frage meinerseits zu folgendem Codeschnipsel:
Code:
...
<beschreibung dName="brief.doc">Das ist die Briefbeschreibung</beschreibung>
...
Mittels XML-Schema kann ich schön über das Attribut dName verfügen. Nun will ich aber auch den Inhalt des Beschreibungs-Tags pürfen. Funktiomiert das? Ich finde keine Lösung, ohne Kinder-Elemente. Ich möchte, dass <beschreibung> nicht leer sein darf.

Vielen Dank für Hilfe.
Karsten.
 
Und von welcher Programmiersprache in welchem Umfeld sprechen wir jetzt eigentlich :confused:
Ich meine nicht, dass es besonders wichtig wäre, aber ...
 
Es handelt sich, wie in Überschrift und Text angesprochen, um XML in Verbindung mit XML Schema.
Das Codeschnipselchen ist Betsandteil meiner XML-Datei.
Beste Grüße
Jamax.
 
wie wäre es mit:
Code:
<xs:simpleType name="testType">
        <xs:restriction base="xs:string">
            <xs:minLength value="1" />
        </xs:restriction>
    </xs:simpleType>

<xs:element name="beschreibung">
                    <xs:complexType mixed="true">
                        <xs:simpleContent>
                            <xs:extension base="testType">
                                <xs:attribute name="dName" type="xs:string" use="required" />
                            </xs:extension>
                        </xs:simpleContent>
                    </xs:complexType>
                </xs:element>

Ist das was du suchst?
 
Das sieht recht gut aus und ist wohl das, was ich meine. Das führt aber zu weiteren Problemchen.

Mein Kopf sieht folgend aus und ich verwende keinen Prefix. Da ich nun sleber datentypen definiere, muss dieser sicher geändert werden, oder?
Code:
<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
...

Bisher war meine XSD valide. Nutze ich aber dein Beispiel unter Wegnahme des XS:prefixes, erhalte ich folgenden Fehler bei der Avlidierung des XML-Files:


Error resolving component 'testType'. It was detected that 'testType' is in namespace
'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document
'file:.../document.xsd'.
If this is the incorrect namespace,
perhaps the prefix of 'testType' needs to be changed. If this is the correct namespace, then an appropriate
'import' tag should be added to 'file:.../document.xsd'.


Ich muss doch keinen Prefix verwenden, oder?

Vielen Dank für die Hilfe.
 
Zuletzt bearbeitet:
Mein fehler:

XML:
Code:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!-- <!DOCTYPE tableList SYSTEM "tabellen.dtd"> -->

<tableList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="test.xsd">

<table>
	<fTable fKey="aid">name</fTable>
</table>


</tableList>

XMLSchema:
Code:
<?xml version="1.0"?>

<schema xmlns="http://www.w3.org/2001/XMLSchema">



<simpleType name="fTableType">
  <restriction base="string">
  	<minLength value="1" />
	</restriction>
</simpleType>



<!-- Liste von Tabellen -->
<element name="tableList">
<complexType>
<sequence>
<!-- Tabellen -->
<element name="table">
<complexType>
		<sequence>
			<element name="fTable">
				<complexType mixed="true">
					<simpleContent>
          <extension base="fTableType">
					<!-- Name des Fremdschlüssels -->
					<attribute name="fKey" type="string" use="required"/>
					</extension>
          </simpleContent>					
				</complexType>
			</element>
		</sequence>
</complexType>
</element>
</sequence>	
</complexType>
</element>

Fehler:
[Xerces-J 2.7.1] Validating "test.xml" against "file:test.xsd" ...
Ln 26 Col 40 - src-resolve.4.2: Error resolving component 'fTableType'. It was detected that 'fTableType' is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this namespace are not referenceable from schema document 'file:/Users/kschnei/Desktop/test.xsd'. If this is the incorrect namespace, perhaps the prefix of 'fTableType' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:/Users/kschnei/Desktop/test.xsd'.


Kann mir irgendjemand helfen?
DAnke.
 
Immer noch keine Lösung.

Hallo Freunde des XMLs,

Leider habe ich immer noch keiner Lösung und würde mich sehr über ein lauffähhiges Beispiel freuen.
Dazu noch einmal folgede Dateien:

XML:
Code:
<?xml version="1.0">
<database part="cisar">
  <column dateityp="excel">Microsoft Excel</column>
</database>

dabei will ich dateityp auf ENUM prüfen (darf nur einen von 4 Werten besitzen) und an der Stelle von 'Microsoft Excel' MUSS etwas drin stehen.

Ich bekomme das Schema einfach ncht hin, ohne zwischen <column> und </column> ein weiteres Tag inzuführen. Aber das wäre sinnfrei, da es maximal eins wäre.

Danke für die Hilfe.
 
Komischerweise ghet es mit eigenem Namensraum als Präfix. Das versteh ich nicht - muss ich aber auch nicht. Vielen DAnk für die Hilfe.
 
Zurück
Oben Unten