on 02-12-2009 8:30 AM
Hi Experts,
I have a XSD in which one field is referencing another xsd. I impoted referenced xsd and the main xsd as External Defination but I am unable to see/get the all fields from the reference xsd. where as in XMLSPY I am able to see the entire structure with out any problem.
Can any one please give your input to solve this problem.
Thanks
Rajeev.
Hi Rajeev,
The problem is in reference. I mean after importing both XSDs as External Definition(ED), you need to refer the ED of referenced XSD in the "Source" field of ED of main XSD.
Ex,
XSD1 --> ED1
XSD2 --> ED2
Go to ED2 --> Source --> Mention name of ED1 --> save and acivate --> then it will work.
Hope it wil help.
Br,
Madan Agrawal
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Rajeev,
Yes it is possible to refer another XSD from one XSD. In this case the referd XSD will come as href in Payload.
You must be using SOAP Adapter.
The problem is SOAP does not support more than one body child. If a SOAP message with several body childs arrive, then only the first child is considered, all other body childs are ignored.
this is happening in your case.
Thanks
Sunil Singh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
As Koen de Vries mentioned above,
IN Ext Def --> Source
provide the "Source" field correctly in the corresponding XSDs, this is the field which is referenced in other XSDs. (this has to be the actual file name "abc.xsd"). all XSDs should have this.
we had similar issue & the above is the solution.
Regards
Vishnu
HI,
Here is the XSD strucutres:
Main XSD:
<xsd:element name="MaterialDefinition" type="MaterialDefinitionType" minOccurs="0" maxOccurs="unbounded" />
<xsd:complexType name="MaterialDefinitionType">
<xsd:sequence>
<xsd:element name="ID" type="IDType" />
<xsd:element name="Description" type="DescriptionType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="MaterialDefinitionProperty" type="MaterialDefinitionPropertyType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="MaterialClassID" type="MaterialClassIDType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="MaterialLotID" type="MaterialLotIDType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="Any" type="AnyMaterialDefinitionExtensionType" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AnyMaterialDefinitionExtensionType">
<xsd:sequence>
<xsd:element ref="sit:MaterialDefinitionExtension" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MaterialDefinitionPropertyType">
<xsd:sequence>
<xsd:element name="ID" type="IDType" />
<xsd:element name="Description" type="DescriptionType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="Value" type="ValueType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="QAMaterialTestSpecificationID" type="QAMaterialTestSpecificationIDType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="Any" type="sit:MaterialDefinitionPropertyExtensionType" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
Referenced XSD is as follow:
<xsd:element name="MaterialDefinitionExtension" type="MaterialDefinitionExtensionType">
<xsd:annotation>
<xsd:documentation>
Is the extension for b2mml:MaterialDefinition. This element can be used only
as subelement of the b2mml:MaterialDefinition/b2mml:Any element
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="MaterialDefinitionExtensionType">
<xsd:sequence>
<xsd:element name="Label" type="b2mml:NameType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
It contains the material definition localized label
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Comment" type="b2mml:DescriptionType" minOccurs="0" />
<xsd:element name="Version" type="b2mml:VersionType" minOccurs="0" />
<xsd:element name="Status" type="xsd:string" minOccurs="0" />
<xsd:element name="UnitOfMeasure" type="b2mml:UnitOfMeasureType" minOccurs="0" />
<xsd:element name="LotUnitOfMeasure" type="b2mml:UnitOfMeasureType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Is the default Unit of measure used for Lots belonging to this Materisl Definition.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="SublotUnitOfMeasure" type="b2mml:UnitOfMeasureType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Is the default Unit of measure used for Sublots belonging to this Materisl Definition.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="MaterialDefinitionThreshold" type="ThresholdType" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
It contains the material definition thresholds
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Validity" type="ValidityType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Specifies the validity interval of this lot.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="MaterialType" type="xsd:string" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="MaterialDefinitionPropertyExtension" type="MaterialDefinitionPropertyExtensionType">
<xsd:annotation>
<xsd:documentation>
Is the extension for b2mml:MaterialDefinitionProperty. This element can be used only as subelement of the b2mml:MaterialDefinitionProperty/b2mml:Any element
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="MaterialDefinitionPropertyExtensionType">
<xsd:sequence>
<xsd:element name="Label" type="b2mml:NameType" minOccurs="0" />
<xsd:element name="Threshold" type="ThresholdType" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
I see the source and target has the same names mentioned. Please advise how can I slove this problem of getting fields of referenced xsd?
Thanks alot
Rajeev.
Hi,
this has nothing to do with your XSDs..
when you imported them as External definition in IR..
For all XSDs, you are importing, you have to fill the field called "Source" in the IR (ext def object) in XI.
this is in the same screen where you import your XSD (just below the field "File")
this shud have the value as i mentioned above in my post.
then you can see all the referencing XSDs.
Regards
Vishnu
Hi Rajeev,
Follow the points.
1. Name the Main XSD as MaterialDefinition.xsd and import it as ED, named ED_MaterialDefinition
2. Name the referenced XSD as MaterialDefinitionExtension.xsd and import it as ED, named ED_MaterialDefinitionExtension
3. Open ED_MaterialDefinitionExtension and go to EDIT mode
4. In EDIT mode, go to "SOURCE" field and enter the following information " MaterialDefinition.xsd"
5. Save and Activate
To check,
6. Open ED_MaterialDefinition and go to reference tab, there you can find the referenced message
Br,
Madan Agrawal
Hi,
First import file1 under external definition. Now use the following in file2
<xsd:include schemaLocation="file1.xsd"/>
Regards,
Sarvesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
In the XSD, while clicking on External reference, could you see the other xsd? First you should import the referenced xsd and then the main one.
Are you using import statement or an incluede statement in xsd?
Regard,
Prateek
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
86 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.