Announcement

Collapse
No announcement yet.

Schema und XML erstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Schema und XML erstellen

    Hallo, ich bin ziemlich neu in XML und so zeug, also ich möchte ein Schema .xsd und eine dazugehörige .xml-datei erstellen oder umgekehrt. Ich benutze CopyEditor, also habe ich dort xsd und xml ausgewählt und losgeschrieben. alles ist wohlgeformt aber nicht valide. Er sagt immer "no DTD found"

    DEr Kopf der xml datei sieht so aus

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <Autosammlung xmlns="irgendwas"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="irgendwas Autosammlung.xsd">
    Der Kopf der Schemadatei sieht so aus

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="irgendwas"
    xmlns="irgendwas"
    elementFormDefault="qualified">
    er unterstreicht mir immer das qualified und sagt no dtd found

    die xml datei heißt autosammlung.xml und die schmadatei heißt autosammlung.xsd und die liegen beide auf dem Desktop, was mach ich hier verkehrt ?
    Zuletzt editiert von BaxterStockman; 28.03.2011, 00:53.

  • #2
    minmal Anforderung

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <Autosammlung xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\xml\autosammlung.xsd">
    	<eintrag>
    		<marke>DAF
    </marke>
    		<baujahr>1970
    </baujahr>
    	</eintrag>
    	<eintrag>
    		<marke>AUDI
    </marke>
    		<baujahr>2000
    </baujahr>
    	</eintrag>
    	<eintrag>
    		<marke>VW
    </marke>
    		<baujahr>1948
    </baujahr>
    	</eintrag>
    </Autosammlung>

    schema dazu

    Code:
    ?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    	<xs:element name="marke" type="xs:string"/>
    	<xs:element name="eintrag">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element ref="marke"/>
    				<xs:element ref="baujahr"/>
    			</xs:sequence>
    		</xs:complexType>
    	</xs:element>
    	<xs:element name="baujahr">
    		<xs:simpleType>
    			<xs:restriction base="xs:integer">
    			</xs:restriction>
    		</xs:simpleType>
    	</xs:element>
    	<xs:element name="Autosammlung">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element ref="eintrag" maxOccurs="unbounded"/>
    			</xs:sequence>
    		</xs:complexType>
    	</xs:element>
    </xs:schema>

    Comment


    • #3
      vielen vielen Dank, jetzt funktionierts

      jetzt ist nur noch bei der schema datei sagt er immer no dtd found. muss ich fuer die schema datei ne extra dtd-datei erstellen ?

      Comment


      • #4
        und dann haett ich noch ne frage und zwar hab ich irgendwo gelesen, dass wenn die xml und die xsl auf derselben ebene liegen, kann man sie durch Namespaces oder so irgendwie benennen, dass sie nicht den genauen Pfad brauchen wie C:\\ usw. damit ich sie so auch nen beispielsweise usb stick ziehen kann und ueberall laufen lassen kann.

        wie benutzt man das bzw. wie muss heir der kopf aussehen ?

        Comment


        • #5
          In diesem Fall einfach den Pfad weglassen und direkt den Dateinamen von DTD bzw. Schema referenzieren.

          Comment


          • #6
            besten dank das funktioniert !

            Comment

            Working...
            X