XML Schema Definition

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XML Schema Definition

    Hallo liebe Community,
    das heutige Thema, was mir etwas zu schaffen macht, ist die Schema Definition im Venetian Blind Design.

    Ich habe eine Bibliotheks-Library (weißer Schimmel? ), die folgende Struktur hat:

    PHP-Code:
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <bibliography xsi:schemaLocation="http://www.test.de schema.xsd"
        xmlns="http://www.test.de"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

      <bibentries>
        <bibentry type="phdthesis" id="Abadie:92">
          <author>B. Abadie</author>
          <title>On the K-theory of non-commutative Heisenberg manifolds</title>
          <school>Univ. of California at Berkeley</school>
          <year>1992</year>
        </bibentry>
        <bibentry type="inproceedings" id="Abadie:94">
          <author>B. Abadie</author>
          <title>”Vector bundles” over quantum Heisenberg manifolds</title>
          <booktitle>Algebraic Methods in Operator Theory</booktitle>
          <editor>R. Curto and P. E. T. Jørgensen</editor>
          <publisher>Birkhäuser, Boston - Basel - Berlin</publisher>
          <year>1994</year>
          <note>307-315</note>
        </bibentry>
        <bibentry type="article" id="Abadie:95">
          <author>B. Abadie</author>
          <title>Generalized fixed-point algebras of certain actions on crossed products</title>
          <journal>Pacific J. Math.</journal>
          <volume>171</volume>
          <year>1995</year>
          <note>1-21</note>
        </bibentry>
    ...
    Die Bibentries können sein: article, inproceedings, phdthesis, book, ... mit verschiedenen Pflicht- und optionalen Feldern.

    Nun ist die große Frage, wie ich auf die einzelnen Typen eingehe und diese in der Schema-Definition konkretisiere und das auch noch im Venetian Blind Design.

    Vielleicht könnte mir jemand, der sich in der Materie auskennt, einen kleinen Schubs in die richtige Richtung geben?! Wäre sehr dankbar...

    Mein Ansatz:
    PHP-Code:
    <?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.test.de" xmlns="http://www.test.de" elementFormDefault="qualified">
    <xsd:element name="bibliography" type="bib_typ" /> (wozu dieser type?)
        <xsd:complexType name="bib_typ">
    <xsd:sequence>
        <xsd:element name="bibentries" type="bib_typ" maxOccurs="unbounded" minOccurs="0" />
        ...
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>

  • #2
    In VBD gehalten müsste es IMHO ungefähr so aussehen - korrigiert mich bitte jemand wenn ich irre.

    Code:
    <?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    			targetNamespace="http://www.test.de" 
    			xmlns="http://www.test.de" 
    			elementFormDefault="qualified">
    			
    	<xsd:element name="bibliography">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element name="bibentries" type="bibentriesType" minOccurs="0" maxOccurs="unbounded" />
    			</xs:sequence>
    		</xs:complexType>		
    	</xsd:element>
    	
    	<xsd:complexType name="bibentriesType">
    		<xsd:sequence>
    			<xsd:element name="bibentry" type="bibentryType" maxOccurs="unbounded" minOccurs="0" />
    		</xsd:sequence>
    		 <xs:attribute name="id" .... />
    		 <xs:attribute name="type" .... />
    	</xsd:complexType>
    	
    	<xsd:complexType name="bibentryType">
    		<xsd:sequence>
    			<xs:element name="author" type="xs:string" .... />
    			<xs:element name="title" type="xs:string" .... />
    		</xsd:sequence>
    	</xsd:complexType>	
    	
    </xsd:schema>
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      danke schonmal

      ich muss mal schauen, wie ich das dann für die einzelnen arten der einträge genau beschreibe...

      Kommentar


      • #4
        Hab nochmal reingeschaut und mir fällt jetzt erst auf, dass ich auf die Sache mit den verschiedenen typen von bibentry nicht eingegangen bin - so ganz sicher bin ich mir da jetzt auch grad nicht, mein Ansatz dazu sähe im Augenblick so aus, aber wie krieg ich jetzt noch das Attribut type von bibentry an den jeweiligen complexType gebunden? Seh grad den Wald vor lauter Luft nicht...

        Code:
        <?xml version="1.0"?>
        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        			targetNamespace="http://www.test.de" 
        			xmlns="http://www.test.de" 
        			elementFormDefault="qualified">
        			
        	<xsd:element name="bibliography">
        		<xs:complexType>
        			<xs:sequence>
        				<xs:element name="bibentries" type="bibentriesType" minOccurs="0" maxOccurs="unbounded" />
        			</xs:sequence>
        		</xs:complexType>		
        	</xsd:element>
        	
        	<xsd:complexType name="bibentriesType">
        		<xsd:sequence>
        			<xsd:choice>
        				<xsd:element name="bibentry" type="bibentryPhdthesisType" maxOccurs="unbounded" minOccurs="0" />
        				<xsd:element name="bibentry" type="bibentryInproceedingsType" maxOccurs="unbounded" minOccurs="0" />
        			</xsd:choice>
        		</xsd:sequence>
        		 <xs:attribute name="id" .... />
        		 <xs:attribute name="type" .... />
        	</xsd:complexType>
        	
        	<xsd:complexType name="bibentryPhdthesisType">
        		<xsd:sequence>
        			<xs:element name="author" type="xs:string" .... />
        			<xs:element name="title" type="xs:string" .... />
        			...
        		</xsd:sequence>
        	</xsd:complexType>	
        	
        	<xsd:complexType name="bibentryInproceedingsType">
        		<xsd:sequence>
        			<xs:element name="author" type="xs:string" .... />
        			<xs:element name="title" type="xs:string" .... />
        			...
        		</xsd:sequence>
        	</xsd:complexType>		
        	
        </xsd:schema>
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          ich finde, es sieht schonmal ganz gut aus
          nur kann ich dir auf deine frage als threadstarter leider keine antwort geben und hoffe, dass sich noch jemand meldet zum thema

          Kommentar


          • #6
            hab es mal mit folgender Schema-Deinition versucht, aber da spuckt er mir bereits nen Validierungsfehler aus.

            PHP-Code:
            <?xml version="1.0"?>
            <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                        targetNamespace="http://www.test.de" 
                        xmlns="http://www.test.de" 
                        elementFormDefault="qualified">
                        
                <xsd:element name="bibliography">
                    <xsd:complexType mixed="true">
                        <xsd:sequence>
                            <xsd:element name="bibentries" type="bibentriesType" minOccurs="0" maxOccurs="unbounded" />
                        </xsd:sequence>
                    </xsd:complexType>        
                </xsd:element>
                
                <xsd:complexType name="bibentriesType">
                    <xsd:sequence>
                        <xsd:choice>
                            <xsd:element name="bibentry" type="bibentryPhdthesisType" maxOccurs="unbounded" minOccurs="0" />
                            <xsd:element name="bibentry" type="bibentryInproceedingsType" maxOccurs="unbounded" minOccurs="0" />
                        </xsd:choice>
                    </xsd:sequence>
                     <xsd:attribute name="id" type="xsd:string" />
                     <xsd:attribute name="type" type="xsd:string" />
                </xsd:complexType>
                
                <xsd:complexType name="bibentryPhdthesisType">
                    <xsd:sequence>
                        <xsd:element name="author" type="xsd:string"  />
                        <xsd:element name="title" type="xsd:string" />
                        
                    </xsd:sequence>
                </xsd:complexType>    
                
                <xsd:complexType name="bibentryInproceedingsType">
                    <xsd:sequence>
                        <xsd:element name="author" type="xsd:string" />
                        <xsd:element name="title" type="xsd:string" />
                        
                    </xsd:sequence>
                </xsd:complexType>        
                
            </xsd:schema>
            Fehler: Element 'bibentry' is not consistent with element 'bibentry'.

            Kommentar

            Lädt...
            X