IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
Expand all | Collapse all

Problems defining a schema

webMethods Community Member

webMethods Community MemberThu May 09, 2002 02:49 PM

  • 1.  Problems defining a schema

    Posted Fri January 18, 2002 11:19 AM

    Hi,

    I’m running Tamino V3.1.1.1 and I tried to define a simple schema with the new schema editor. The loaded DTD is well-formed, valid and looks pretty simple.
    I got the following error message:
    “validation has detected an error in document; datatype validation for attribute “name” of type xs:NCName failed: An invalid value has been found during validation. ”

    In my DTD im not using a attribute “name” but I’m using ID and IDREF. According the XML Schema datatype definition ID, IDREFS are derived from NCName.

    Does anybody know what this error message exactly means?
    Thanks for any suggestions.
    rene.foehn@orion-tech.ch


    #webMethods
    #Tamino
    #API-Management


  • 2.  RE: Problems defining a schema

    Posted Mon January 21, 2002 09:43 AM

    Just click on the error message and the node that causes the error will be selected in the tree. In the properties panel should be a “name” or a “…name” property that contains a value that is not an NCName.
    Thats how I understand this error message.


    #API-Management
    #webMethods
    #Tamino


  • 3.  RE: Problems defining a schema

    Posted Mon January 21, 2002 03:09 PM

    Hi Harald,
    clicking on the error message did not work. So I could not find out which node was causing the problem.
    But I finally found the problem accidentaly; I was using namespaces “xyz:…” and by some reason XML schema doesn’t like it.


    #Tamino
    #API-Management
    #webMethods


  • 4.  RE: Problems defining a schema

    Posted Tue January 22, 2002 11:21 AM

    Hi Rene,
    not XML Schema, but the subset that is supported by TSD3 does not like namespaces except targetnamespace.
    If you post your errornous schema, we can use it to reproduce this “error positioning” problem.


    #webMethods
    #Tamino
    #API-Management


  • 5.  RE: Problems defining a schema

    Posted Fri February 15, 2002 10:53 PM

    What exactly do you mean by “TSD3 does not like namespaces except targetnamespace”?

    I’m running into a namespace problem when trying to define the schema.
    I get the same error message as listed in previous posting:
    “validation has detected an error in document; datatype validation for
    attribute “name” of type xs:NCName failed: An invalid value has been
    found during validation. ”

    The DTD defines the xlink namespace as follows:

    <!ATTLIST mptr %a.global;
    xmlns:xlink CDATA #FIXEDXLink namespace
    xlink:type CDATA #FIXED “simple”
    xlink:href CDATA #REQUIRED
    xlink:role (part) “part”
    xlink:title CDATA #IMPLIED >

    and the TSD schema created by the schema editor from the DTD contains the following:
    xs:complexType
    <xs:attribute name = “ID” type = “xs:ID”></xs:attribute>
    <xs:attribute name = “xmlns:xlink” type = “xs:string” fixed = “XLink namespace”></xs:attribute>
    <xs:attribute name = “xlink:type” type = “xs:string” fixed = “simple”></xs:attribute>
    <xs:attribute name = “xlink:href” type = “xs:string” use = “required”></xs:attribute> <xs:attribute name = “xlink:role” default = “part”>
    xs:simpleType
    <xs:restriction base = “xs:NMTOKEN”>
    <xs:enumeration value = “part”></xs:enumeration>
    </xs:restriction> </xs:simpleType>
    </xs:attribute>
    <xs:attribute name = “xlink:title” type = “xs:string”></xs:attribute>
    </xs:complexType>

    any idea how to fix this error?
    thanks.
    Clare.


    #API-Management
    #Tamino
    #webMethods


  • 6.  RE: Problems defining a schema

    Posted Wed February 20, 2002 08:21 PM

    Hi Clare,

    TargetNamespace is the namespace in which the instances of the schema should live and which the instances of the schema declare.
    You can define only one targetNamespace in a schema.
    In XML-Schema schema composition over different target namespaces is done by xs:import. But TSD3 does not support this feature yet.

    So you cannot define a element mprt which belongs to the xlink namespace inside a schema that does not targets into the xlink namespace, too.

    The conversion from dtd to tsd3 fails in your case and the generated tsd3 does not express what should be expressed in XML-Schema. In a future Tamino version you might express it like this:

    - assumed that there is a XML schema somewhere in the world (and that schema is known to your Tamino server instance) that expresses the same as the xlink dtd does – otherwise you have to write this schema yourself -

    <xs:schema … xmlns:xlink = “XLink namespace” …>

    <xs:import namespace = “XLink namespace” />

    <xs:element name = “mptr” type = “xlink:locator” />

    The solution with TSD3 is to define your mprt element in you target namespace… The drawback is that mptr does do not refer to xlink namespace in your instances, too and a migration will be necessary if you want to switch to namespace usage with a future Tamino release.


    #webMethods
    #Tamino
    #API-Management


  • 7.  RE: Problems defining a schema

    Posted Fri February 22, 2002 08:52 AM

    Clare - could you post your schema for so I can check it out? I have a bit of experience with handling schemas with mixed namespaces


    #Tamino
    #API-Management
    #webMethods


  • 8.  RE: Problems defining a schema

    Posted Fri February 22, 2002 05:11 PM

    Nigel,
    Please find the schema attached.
    Clare.
    Moa2Schema.tsd (87.4 KB)


    #API-Management
    #webMethods
    #Tamino


  • 9.  RE: Problems defining a schema

    Posted Tue February 26, 2002 10:01 AM

    I have two solutions that Tamino 3.1 accepts as a schema
    I don’t have an instance so you will have to it try out with data. If you like you could send me an instance

    1) Redefine element mptr as follows

    xs:complexType
    <xs:anyAttribute namespace=“XLink namespace” />
    </xs:complexType>
    or 2)
    xs:complexType
    <xs:anyAttribute namespace=“##other” />
    </xs:complexType>

    The down side is that Tamino will not schema check instances as exactly as you might like - but the degredation is ONLY in this one element.

    If it doesn’t work get back to us.


    #webMethods
    #Tamino
    #API-Management


  • 10.  RE: Problems defining a schema

    Posted Fri March 22, 2002 01:24 PM

    Sorry I am not sure I understand the solution. Here is how mptr is defined in the schema (below), I believe. Could you be more explicit about the suggested solution and for my sake indicate what you are doing and why it works. I am struggling to do the same type of TSD for stylesheets only trying to define the top-level elements and attributes…

    thanks you


    <xs:element name = “mptr”>
    xs:annotation
    xs:documentation…</xs:documentation>
    </xs:annotation>
    xs:complexType
    <xs:attribute name = “ID” type = “xs:ID”></xs:attribute>
    <xs:attribute name = “xmlns:xlink” type = “xs:string” fixed = “XLink namespace”></xs:attribute>
    <xs:attribute name = “xlink:type” type = “xs:string” fixed = “simple”></xs:attribute>
    <xs:attribute name = “xlink:href” type = “xs:string” use = “required”></xs:attribute>
    <xs:attribute name = “xlink:role” default = “part”>
    xs:simpleType
    <xs:restriction base = “xs:NMTOKEN”>
    <xs:enumeration value = “part”></xs:enumeration>
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    <xs:attribute name = “xlink:title” type = “xs:string”></xs:attribute>
    </xs:complexType>
    </xs:element>


    #API-Management
    #webMethods
    #Tamino


  • 11.  RE: Problems defining a schema

    Posted Mon March 25, 2002 09:43 AM

    like this

    <xs:element name=“mptr”>
    xs:annotation
    xs:documentation</xs:documentation>
    </xs:annotation>
    xs:complexType
    <xs:anyAttribute namespace=“##other” />
    </xs:complexType>
    </xs:element>


    #webMethods
    #Tamino
    #API-Management


  • 12.  RE: Problems defining a schema

    Posted Mon March 25, 2002 09:51 AM

    It is actually dead easy. If you use a the Jscript Dashboard you can create an XSl Style sheet Schema with a button press.

    Otherwise copy this - which is what the dashboard uses (modulo cloollection and schema name)


    <xs:schema xmlns:xs=“XML Schema” xmlns:tsd=“http://namespaces.softwareag.com/tamino/TaminoSchemaDefinition” xmlns:xsl=“XSLT Namespace” targetNamespace=“XSLT Namespace”>
    - xs:annotation
    - xs:appinfo
    - <tsd:schemaInfo name=“xsl:stylesheet”>
    <tsd:collection name=“RDF” />
    - <tsd:doctype name=“xsl:stylesheet”>
    - tsd:logical
    tsd:contentclosed</tsd:content>
    -
    - tsd:accessOptions
    <tsd:read />
    <tsd:insert />
    <tsd:update />
    <tsd:delete />
    </tsd:accessOptions>
    </tsd:logical>
    </tsd:doctype>
    - </tsd:schemaInfo>
    </xs:appinfo>
    </xs:annotation>
    <xs:element name=“stylesheet” type=“xs:anyType” />
    </xs:schema>


    #Tamino
    #API-Management
    #webMethods


  • 13.  RE: Problems defining a schema

    Posted Tue April 02, 2002 03:24 PM

    Hello,

    I am trying to import the attached schema. This schema is defined by a standards body so i do not have the ability to modify it.

    I have been reading this thread and have been able to turn of attribute name checking as per Nigel’s recommendation (usage of the xs:anyAttribute schema element). My problem is in elements that have a name from another namespace. Are there any recomendations?

    example:


    this is ok!
    ref:elem2from another namespace</ref:elem2>

    Thanks,
    Joe
    mddl.dtd (126 KB)


    #Tamino
    #API-Management
    #webMethods


  • 14.  RE: Problems defining a schema

    Posted Wed April 03, 2002 02:28 PM

    In the same way as attributes belonging to other namespaces (xlink within one of the preceding contributions) can be replaced by the attribute wildcard, i.e. <xs:anyAttribute namespace=“…”/>
    you can use the element wildcard for elements belonging to other namespaces, i.e. use

    <xs:any namespace=“…”>

    Additional attributes supported with xs:any are
    processContents, minOccurs and maxOccurs.
    Again, this prevents Tamino from validating the respective elements against a schema - but at least you can store your documents in Tamino with a partial validation.


    #Tamino
    #API-Management
    #webMethods


  • 15.  RE: Problems defining a schema

    Posted Wed April 24, 2002 12:23 PM

    Wait a minute, what happens to my indexes (and sorting) if I define my schema to accept any element or attribute :confused:


    #Tamino
    #webMethods
    #API-Management


  • 16.  RE: Problems defining a schema

    Posted Thu April 25, 2002 12:15 PM

    You are right: unfortunately, it is not possible to define an index for a node (i.e. element or attribute) which is not described by the schema.


    #webMethods
    #Tamino
    #API-Management


  • 17.  RE: Problems defining a schema

    Posted Thu May 09, 2002 02:49 PM

    [QUOTE]
    Originally posted by Nigel Hutchison:
    I have two solutions that Tamino 3.1 accepts as a schema
    I don’t have an instance so you will have to it try out with data. If you like you could send me an instance

    1) Redefine element mptr as follows

    xs:complexType
    <xs:anyAttribute namespace=“XLink namespace” />
    </xs:complexType>
    or 2)
    xs:complexType
    <xs:anyAttribute namespace=“##other” />
    </xs:complexType>

    I have seen your solutions…
    My problems appears similar to what u described.
    my schema looks like this…

    <xs:element name = “description”>
    xs:complexType
    xs:sequence
    <xs:element ref = “langstring”></xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name = “description”>
    xs:complexType
    xs:sequence
    <xs:any namespace = “http://www.nie.ecc.org.sg”></xs:any>
    <xs:element ref = “langstring”></xs:element>
    <xs:element ref = “usagerights”></xs:element>
    <xs:element ref = “unitpricing”></xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>

    I need two description elements that have different sub elements. But this schema always give me an error saying duplicated name.
    I tried to add namespace at the top of the schema,
    but it doesn;t work

    Thanks alot.


    #Tamino
    #API-Management
    #webMethods


  • 18.  RE: Problems defining a schema