4

This is xml shema from which I want generate classes for C# using xsd tool:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:b2g="http://www.carina.hr/b2g/v1.0.0#" xmlns:xadesv141="http://uri.etsi.org/01903/v1.4.1#" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.carina.hr/b2g/v1.0.0#" elementFormDefault="qualified">
   <xsd:import namespace="http://uri.etsi.org/01903/v1.4.1#" schemaLocation="http://uri.etsi.org/01903/v1.4.1/XAdESv141.xsd" />
   <xsd:import namespace="http://uri.etsi.org/01903/v1.3.2#" schemaLocation="http://uri.etsi.org/01903/v1.3.2/XAdES.xsd" />
   <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" />
   <element name="B2GDocument" type="b2g:B2GDocumentType" />
   <complexType name="B2GDocumentType">
      <sequence>
         <element name="RequestHeader" type="b2g:RequestHeaderType" minOccurs="1" maxOccurs="1" />
         <element name="ResponseHeader" type="b2g:ResponseHeaderType" minOccurs="0" maxOccurs="1" />
         <element name="Content" type="b2g:ContentType" minOccurs="1" maxOccurs="1" />
         <xsd:element ref="ds:Signature" minOccurs="0" maxOccurs="1" />
      </sequence>
      <attribute name="version" type="string" fixed="1.0" />
   </complexType>
   <complexType name="RequestHeaderType">
      <annotation>
         <documentation>Header of the document.</documentation>
      </annotation>
      <sequence>
         <element name="AppId">
            <annotation>
               <documentation>Id of the target application.</documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <whiteSpace value="collapse" />
               </restriction>
            </simpleType>
         </element>
         <element name="TraderId">
            <annotation>
               <documentation>Id of the trader.</documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <xsd:maxLength value="17" />
                  <whiteSpace value="collapse" />
               </restriction>
            </simpleType>
         </element>
         <element name="TraderAppId">
            <annotation>
               <documentation>Id of the trader application.</documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <xsd:maxLength value="48" />
                  <whiteSpace value="collapse" />
               </restriction>
            </simpleType>
         </element>
         <element name="TraderMsgId" maxOccurs="1" minOccurs="0">
            <annotation>
               <documentation>Mime type of the document.
Currently:
text/xml application/pdf</documentation>
            </annotation>
            <simpleType>
               <restriction base="string" />
            </simpleType>
         </element>
         <element name="DocUuid" type="b2g:DocUuidType" maxOccurs="1" minOccurs="0" />
      </sequence>
      <xsd:attribute name="Id" type="xsd:ID" use="required" />
   </complexType>
   <complexType name="ContentType">
      <sequence>
         <element name="DocType" type="string" maxOccurs="1" minOccurs="1" />
         <element name="MimeType" type="string" maxOccurs="1" minOccurs="1" />
         <element name="Description" type="string" maxOccurs="1" minOccurs="0">
            <annotation>
               <documentation>Opcionalni opis dokumenta. Maksimalna duljina je 255 znakova.</documentation>
            </annotation>
         </element>
         <element name="Data" maxOccurs="1" minOccurs="1">
            <xsd:complexType mixed="true">
               <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                  <xsd:any namespace="##any" processContents="lax" />
               </xsd:sequence>
               <xsd:attribute name="encoding" use="required">
                  <simpleType>
                     <restriction base="string">
                        <enumeration value="EMBEDDED" />
                        <enumeration value="BASE64" />
                     </restriction>
                  </simpleType>
               </xsd:attribute>
               <xsd:anyAttribute namespace="##any" />
            </xsd:complexType>
         </element>
      </sequence>
      <xsd:attribute name="Id" type="xsd:ID" use="required" />
   </complexType>
   <complexType name="ResponseHeaderType">
      <sequence>
         <element name="DocUuid" type="b2g:DocUuidType" />
         <element name="ReceiveTimestamp" type="dateTime" />
      </sequence>
      <xsd:attribute name="Id" type="xsd:ID" use="required" />
   </complexType>
   <xsd:simpleType name="DocUuidType">
      <xsd:restriction base="xsd:string">
         <xsd:length value="36" />
         <xsd:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" />
      </xsd:restriction>
   </xsd:simpleType>
</schema>

When I try to generate classes using

C:\test>xsd G2BDokument.xsd /Classes

I get this message:

Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Schema validation warning: The 'http://www.w3.org/2000/09/xmldsig#:Signature' element is not declared. Line 20, position 11.

Warning: Schema could not be validated. Class generation may fail or may produce incorrect results.

Error: Error generating classes for schema 'G2BDokument'.
  - The element 'http://www.w3.org/2000/09/xmldsig#:Signature' is missing.

If you would like more help, please type "xsd /?".

I can not figure out what I am doing wrong, so can anyone please help me? Thanks!

2
  • Could you post the XML file you used to generate the XSD? Commented May 15, 2013 at 13:24
  • I don't have xml file. I have only this xsd from some project documentation. Commented May 15, 2013 at 13:27

4 Answers 4

10

if you have this file "xmldsig-core-schema.xsd", try this:

C:\test>xsd G2BDokument.xsd xmldsig-core-schema.xsd /Classes

BR

Sign up to request clarification or add additional context in comments.

Comments

8

I did something similar, so: You have to pass 2 parameters. Your file, and the http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd reference. As XSD.exe only accepts 1 input parameter, you have to pass it .Xsd paths.

So, you have to do this:

  1. Download xmldsig-core-schema.xsd schema.
  2. Run this:

    "C:\Program Files\Microsoft SDKs\Windows\vXXXX\bin\xsd.exe" [path_your_folder]\your_file.xsd [path_to_your_folder]\xmldsig-core-schema.xsd /c /n:mi_new_class_file_name /l:VB

The new file "mi_new_class_file_name.vb" may be now into your "C:\Program Files\Microsoft SDKs\Windows\vXXXX\bin" folder.

Comments

0

Thanks Its working fine.

can you please explain difference between nologo and class

e.x C:\test>xsd G2BDokument.xsd xmldsig-core-schema.xsd /Classes

C:\test>xsd G2BDokument.xsd xmldsig-core-schema.xsd /nologo 

1 Comment

With nologo, this info it's not showed: Microsoft (R) Xml Schemas/DataTypes support utility [Microsoft (R) .NET Framework, Version 4.0.30319.33440] Copyright (C) Microsoft Corporation. All rights reserved.
0

I had a similar issue a few days ago. In my case, was the client who was building the XML files that had the problem. After some time, I decided to simplify my approach. This might not be the best practice but in the end, it worked:

I have 2 XSD: one with the reference to signature and another without it. Since it is the client who will sign the XML File, I gave the XSD without reference to him. He created the classes, then the XML, then signs it and sends it to me. It is then that I use the other XSD (The one with the reference) to check consistency.

Things seem to work. As I said, is not the prettiest but it does the job hehe.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.