Note that there are some explanatory texts on larger screens.

plurals
  1. POErrors using SvcUtil.exe on a wsdl to generate proxy class - xs:group element
    primarykey
    data
    text
    <p>I'm trying to use SvcUtil against a wsdl file to generate proxy classes, but I'm getting an element missing error that I think is related to schema group elements. Does anyone know for a fact if svcutil can handle ? And if so will it handle xs:group elements that have ref attributes that point to the group definition that lives in another schema file?</p> <p>SvcUtil.exe Command (included the paths to the xsd files as well):</p> <pre><code>d:\codegen\svcutil.exe d:\codegen\RPE\ProtocolStateManager.wsdl d:\codegen\RPE\schema\RPE.xsd d:\codegen\RPE\schema\PORT_MT100001UV.xsd d:\codegen\RPE\schema\coreschemas\infrastructureRoot.xsd d:\codegen\RPE\schema\coreschemas\dataTypes.xsd d:\codegen\RPE\schema\coreschemas\voc.xsd /l:cs </code></pre> <p>The error is:</p> <blockquote> <p>Error: Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.XmlSerializerMessageContractImporter Error: Group InfrastructureRootElements is missing. XPath to Error Source: //wsdl:definitions[@targetNamespace='urn:ihe:qrph:rpe:2009']/wsdl:portType[@name= 'ProtocolStateManager']</p> </blockquote> <p>ProtocolStateManager.wsdl:</p> <pre><code> &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;definitions name="ProtocolStateManager" targetNamespace="urn:ihe:qrph:rpe:2009" xmlns:rpe="urn:ihe:qrph:rpe:2009" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"&gt; &lt;!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TYPE DEFINITION - List of services participating in this BPEL process The default output of the BPEL designer uses strings as input and output to the BPEL Process. But you can define or import any XML Schema type and use them as part of the message types. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --&gt; &lt;types&gt; &lt;schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ihe:qrph:rpe:2009"&gt; &lt;include schemaLocation="schema\RPE.xsd"/&gt; &lt;/schema&gt; &lt;/types&gt; &lt;!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MESSAGE TYPE DEFINITION - Definition of the message types used as part of the port type defintions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --&gt; &lt;message name="EnterPatientRequestRequestMessage"&gt; &lt;part name="payload" element="rpe:EnterPatientRequest"/&gt; &lt;/message&gt; &lt;message name="EnterPatientRequestResponseMessage"&gt; &lt;part name="payload" element="rpe:EnterPatientRequest"/&gt; &lt;/message&gt; &lt;message name="PatientScreeningVisitsScheduledRequestMessage"&gt; &lt;part name="payload" element="rpe:PatientScreeningVisitsScheduled"/&gt; &lt;/message&gt; &lt;message name="PatientScreeningVisitsScheduledResponseMessage"&gt; &lt;part name="payload" element="rpe:PatientScreeningVisitsScheduled"/&gt; &lt;/message&gt; &lt;message name="PatientScreeningVisitRecordedRequestMessage"&gt; &lt;part name="payload" element="rpe:PatientScreeningVisitRecorded"/&gt; &lt;/message&gt; &lt;message name="PatientScreeningVisitRecordedResponseMessage"&gt; &lt;part name="payload" element="rpe:PatientScreeningVisitRecorded"/&gt; &lt;/message&gt; &lt;message name="EnrollPatientRequestRequestMessage"&gt; &lt;part name="payload" element="rpe:EnrollPatientRequest"/&gt; &lt;/message&gt; &lt;message name="EnrollPatientRequestResponseMessage"&gt; &lt;part name="payload" element="rpe:EnrollPatientRequest"/&gt; &lt;/message&gt; &lt;message name="PatientStudyVisitsScheduledRequestMessage"&gt; &lt;part name="payload" element="rpe:PatientStudyVisitsScheduled"/&gt; &lt;/message&gt; &lt;message name="PatientStudyVisitsScheduledResponseMessage"&gt; &lt;part name="payload" element="rpe:PatientStudyVisitsScheduled"/&gt; &lt;/message&gt; &lt;message name="PatientStudyVisitRecordedRequestMessage"&gt; &lt;part name="payload" element="rpe:PatientStudyVisitRecorded"/&gt; &lt;/message&gt; &lt;message name="PatientStudyVisitRecordedResponseMessage"&gt; &lt;part name="payload" element="rpe:PatientStudyVisitRecorded"/&gt; &lt;/message&gt; &lt;message name="AlertProtocolStateMessage"&gt; &lt;part name="payload" element="rpe:AlertProtocolState"/&gt; &lt;/message&gt; &lt;!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PORT TYPE DEFINITION - A port type groups a set of operations into a logical service unit. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --&gt; &lt;!-- portType implemented by the ProtocolStateManager BPEL process --&gt; &lt;portType name="ProtocolStateManager"&gt; &lt;operation name="EnterPatientRequest"&gt; &lt;input message="rpe:EnterPatientRequestRequestMessage"/&gt; &lt;output message="rpe:EnterPatientRequestResponseMessage"/&gt; &lt;/operation&gt; &lt;operation name="PatientScreeningVisitsScheduled"&gt; &lt;input message="rpe:PatientScreeningVisitsScheduledRequestMessage"/&gt; &lt;output message="rpe:PatientScreeningVisitsScheduledResponseMessage"/&gt; &lt;/operation&gt; &lt;operation name="RecordPatientScreeningVisit"&gt; &lt;input message="rpe:PatientScreeningVisitRecordedRequestMessage"/&gt; &lt;output message="rpe:PatientScreeningVisitRecordedResponseMessage"/&gt; &lt;/operation&gt; &lt;operation name="EnrollPatientRequest"&gt; &lt;input message="rpe:EnrollPatientRequestRequestMessage"/&gt; &lt;output message="rpe:EnrollPatientRequestResponseMessage"/&gt; &lt;/operation&gt; &lt;operation name="PatientStudyVisitsScheduled"&gt; &lt;input message="rpe:PatientStudyVisitsScheduledRequestMessage"/&gt; &lt;output message="rpe:PatientStudyVisitsScheduledResponseMessage"/&gt; &lt;/operation&gt; &lt;operation name="RecordPatientStudyVisit"&gt; &lt;input message="rpe:PatientStudyVisitRecordedRequestMessage"/&gt; &lt;output message="rpe:PatientStudyVisitRecordedResponseMessage"/&gt; &lt;/operation&gt; &lt;/portType&gt; &lt;portType name="ProtocolStateManagerCallback"&gt; &lt;operation name="onAlertProtocolState"&gt; &lt;input message="rpe:AlertProtocolStateMessage"/&gt; &lt;/operation&gt; &lt;/portType&gt; &lt;!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PARTNER LINK TYPE DEFINITION the ProtocolStateManager partnerLinkType binds the provider and requester portType into an asynchronous conversation. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --&gt; &lt;plnk:partnerLinkType name="ProtocolStateManager"&gt; &lt;plnk:role name="ProtocolStateManagerProvider"&gt; &lt;plnk:portType name="rpe:ProtocolStateManager"/&gt; &lt;/plnk:role&gt; &lt;plnk:role name="ProtocolStateManagerCallbackListener"&gt; &lt;plnk:portType name="rpe:ProtocolStateManagerCallback"/&gt; &lt;/plnk:role&gt; &lt;/plnk:partnerLinkType&gt; &lt;/definitions&gt; </code></pre> <p>RPE.xsd (reference by ProtocolStateManager.wsdl):</p> <pre><code>&lt;schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:ihe:qrph:rpe:2009" xmlns:rpe="urn:ihe:qrph:rpe:2009" xmlns:v3="urn:hl7-org:v3" xmlns="http://www.w3.org/2001/XMLSchema"&gt; &lt;import namespace="urn:hl7-org:v3" schemaLocation="PORT_MT100001UV.xsd"/&gt; &lt;element name="RetrieveProtocolDef" type="rpe:RetrieveProtocolDefType"/&gt; &lt;element name="EnterPatientRequest" type="rpe:EnterPatientRequestType"/&gt; &lt;element name="EnrollPatientRequest" type="rpe:EnrollPatientRequestType"/&gt; &lt;element name="PatientScreeningVisitsScheduled" type="rpe:PatientScreeningVisitsScheduledType"/&gt; &lt;element name="PatientScreeningVisitRecorded" type="rpe:PatientScreeningVisitRecordedType"/&gt; &lt;element name="PatientStudyVisitsScheduled" type="rpe:PatientStudyVisitsScheduledType"/&gt; &lt;element name="PatientStudyVisitRecorded" type="rpe:PatientStudyVisitRecordedType"/&gt; &lt;element name="AmendProtocolDef" type="rpe:AmendProtocolDefType"/&gt; &lt;element name="AlertProtocolState" type="rpe:AlertProtocolStateType"/&gt; &lt;!-- need patient information and study information EnterPatientRequestType can also be used for the return of candidateID?--&gt; &lt;complexType name="RetrieveProtocolDefType"&gt; &lt;sequence&gt; &lt;element name="query" type="string"/&gt; &lt;element name="protocolDef" type="string"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;complexType name="EnterPatientRequestType"&gt; &lt;sequence&gt; &lt;element name="patient" type="rpe:PatientType"/&gt; &lt;element name="study" type="v3:PORT_MT100001UV.Study"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;!-- need patient for candidateID of the patient being scheduled for screening visits need studyID to associate the candidate with the study need schedule information--&gt; &lt;complexType name="PatientScreeningVisitsScheduledType"&gt; &lt;sequence&gt; &lt;element name="patient" type="rpe:PatientType"/&gt; &lt;element name="studyID" type="v3:II"/&gt; &lt;element name="schedule" type="rpe:ScreeningVisitScheduleType"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;!-- need patient for candidateID of patient being recorded for screening visit need studyID to associate the candidate with the study need visit information for the screening visit being recorded--&gt; &lt;complexType name="PatientScreeningVisitRecordedType"&gt; &lt;sequence&gt; &lt;element name="patient" type="rpe:PatientType"/&gt; &lt;element name="studyID" type="v3:II"/&gt; &lt;element name="visit" type="rpe:ScreenVisitType"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;!-- need patient information and study information EnterPatientRequestType can also be used for the return of subjectID?--&gt; &lt;complexType name="EnrollPatientRequestType"&gt; &lt;sequence&gt; &lt;element name="patient" type="rpe:PatientType"/&gt; &lt;element name="study" type="v3:PORT_MT100001UV.Study"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;!-- need patient for subjectID of the patient being scheduled for visits need studyID to associate the subject with the study need schedule information--&gt; &lt;complexType name="PatientStudyVisitsScheduledType"&gt; &lt;sequence&gt; &lt;element name="patient" type="rpe:PatientType"/&gt; &lt;element name="studyID" type="v3:II"/&gt; &lt;element name="schedule" type="rpe:StudyVisitScheduleType"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;!-- need patient for subjectID of patient being recorded for visit need studyID to associate the subject with the study need visit information for the visit being recorded--&gt; &lt;complexType name="PatientStudyVisitRecordedType"&gt; &lt;sequence&gt; &lt;element name="patient" type="rpe:PatientType"/&gt; &lt;element name="studyID" type="v3:II"/&gt; &lt;element name="visit" type="rpe:StudyVisitType"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;!-- patient information should NOT include emrID? should contain placeholder for candidateID and subjectID what specific demographics data is needed? Should this be a generic type so that an XML standard can be passed?--&gt; &lt;complexType name="PatientType"&gt; &lt;sequence&gt; &lt;element name="candidateID" type="string"/&gt; &lt;element name="subjectID" type="string"/&gt; &lt;element name="name" type="string"/&gt; &lt;element name="address" type="string"/&gt; &lt;element name="dob" type="string"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;!-- studyID to identify the study should studyData be a generic type to store an XML standard &lt;complexType name="StudyType"&gt; &lt;sequence&gt; &lt;element name="studyID" type="string"/&gt; &lt;element name="studyData" type="string"/&gt; &lt;/sequence&gt; &lt;/complexType&gt;--&gt; &lt;complexType name="ScreenVisitType"&gt; &lt;sequence&gt; &lt;element name="visitID" type="string"/&gt; &lt;element name="candidateID" type="string"/&gt; &lt;element name="date" type="string"/&gt; &lt;element name="screenVisitData" type="string"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;complexType name="StudyVisitType"&gt; &lt;sequence&gt; &lt;element name="visitID" type="string"/&gt; &lt;element name="subjectID" type="string"/&gt; &lt;element name="date" type="string"/&gt; &lt;element name="studyVisitData" type="string"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;complexType name="ScreeningVisitScheduleType"&gt; &lt;sequence&gt; &lt;element name="visit" type="rpe:ScreenVisitType" maxOccurs="unbounded"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;complexType name="StudyVisitScheduleType"&gt; &lt;sequence&gt; &lt;element name="visit" type="rpe:StudyVisitType" maxOccurs="unbounded"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;complexType name="AmendProtocolDefType"&gt; &lt;sequence&gt; &lt;element name="protocolDef" type="string"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;complexType name="AlertProtocolStateType"&gt; &lt;sequence&gt; &lt;element name="patient" type="rpe:PatientType"/&gt; &lt;element name="study" type="v3:PORT_MT100001UV.Study"/&gt; &lt;/sequence&gt; &lt;/complexType&gt; &lt;/schema&gt; </code></pre> <p>Snippet from PORT_MT100001UV.xsd (Referenced by RPE.xsd) - notice the "InfrastructureRootElements" xs:group:</p> <pre><code> &lt;xs:complexType name="PORT_MT100001UV.Access"&gt; &lt;xs:sequence&gt; &lt;xs:group ref="InfrastructureRootElements"/&gt; &lt;xs:element name="id" type="II" minOccurs="0" maxOccurs="unbounded"/&gt; &lt;xs:element name="targetSiteCode" type="CD" minOccurs="0" maxOccurs="1"/&gt; &lt;xs:choice&gt; &lt;xs:choice&gt; &lt;xs:element name="accessedPerson" type="PORT_MT100001UV.Person" nillable="true" minOccurs="0" maxOccurs="1"/&gt; &lt;xs:element name="accessedNonPersonLivingSubject" type="PORT_MT100001UV.NonPersonLivingSubject" nillable="true" minOccurs="0" maxOccurs="1"/&gt; &lt;/xs:choice&gt; &lt;xs:element name="accessedProduct" type="PORT_MT100001UV.Product" nillable="true" minOccurs="0" maxOccurs="1"/&gt; &lt;/xs:choice&gt; &lt;/xs:sequence&gt; &lt;xs:attributeGroup ref="InfrastructureRootAttributes"/&gt; &lt;xs:attribute name="nullFlavor" type="NullFlavor" use="optional"/&gt; &lt;xs:attribute name="classCode" type="RoleClassAccess" use="required"/&gt; &lt;/xs:complexType&gt; </code></pre> <p>infrastructureRoot.xsd (reference by PORT_MT100001UV.xsd) notice the definition of the InfrastructureRootElements group here - this is the same group from the above schema that has the ref attribute:</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8" standalone="no"?&gt; &lt;xs:schema xmlns:mif="urn:hl7-org:v3/mif" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v3="urn:hl7-org:v3" xmlns:ex="urn:hl7-org/v3-example" elementFormDefault="qualified"&gt; &lt;xs:annotation xmlns="urn:hl7-org:v3"&gt; &lt;xs:documentation&gt;Source Information...&lt;/xs:documentation&gt; &lt;/xs:annotation&gt; &lt;xs:include schemaLocation="voc.xsd"/&gt; &lt;xs:include schemaLocation="datatypes.xsd"/&gt; &lt;xs:group name="InfrastructureRootElements"&gt; &lt;xs:sequence&gt; &lt;xs:element name="realmCode" type="CS" minOccurs="0" maxOccurs="unbounded"/&gt; &lt;xs:element name="typeId" type="II" minOccurs="0" maxOccurs="1"/&gt; &lt;xs:element name="templateId" type="II" minOccurs="0" maxOccurs="unbounded"/&gt; &lt;/xs:sequence&gt; &lt;/xs:group&gt; &lt;xs:attributeGroup name="InfrastructureRootAttributes"/&gt; &lt;/xs:schema&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload