programing

Dell XML 데이터 바인딩 마법사를 사용할 때 필요한 태그가 없습니다.

bestprogram 2023. 9. 19. 21:21

Dell XML 데이터 바인딩 마법사를 사용할 때 필요한 태그가 없습니다.

사용하고 있습니다.XML Data Binding Wizard인에Delphi XE2. 스키마에 다음 유형의 필수 태그가 있습니다.

<xs:element name="MyReport" type="MyReportType" />
<xs:complexType name="MyReportType">
  <xs:all>
    <xs:element name="Header" type="HeaderType" />
    <xs:element name="Values" type="ValuesType" />
    <xs:element name="Events" type="EventsType" />
  </xs:all>
</xs:complexType>

문제는 예를 들어 제가 어떤 요소도 추가하지 않는다면.Values-그룹, 없을 것입니다.<Values>-tag. 그러면 XML 파일이 에 대한 유효성 검사에 실패합니다.XSD. 인터페이스가 다음을 "추가"하는 방법을 제공하고 있다면 이것은 아마도 문제가 되지 않을 것입니다.Values-태그를 달았습니다.

이 문제를 처리하는 표준 방법이 있습니까, 아니면 생성된 코드를 잘못 사용하고 있습니까?

간단히 말해, 해결책이나 다른 방법이 없을까요?Data Binding Wizard, 다음과 같은 것을 만들어 내다XML(이것은 자식 노드가 없을 때 위 스키마를 사용하여 검증하는 데 필요한 것입니다.)HeaderType,ValuesType그리고.EventsType영역이 복잡한 유형:

<MyReport>
  <Header />
  <Values />
  <Events />
</MyReport> 

(다른 비슷한 문제들이 있다는 것을 알고 있습니다, 예를 들어 코드는 다음과 같습니다.<xs:sequence>결승전에서 정확한 순서를 시행하지 않는 것XML-파일, 하지만 적어도 그것에 대해서는 아이들을 순서대로 끼워 넣기만 하면 해결할 수 있는 방법이 있습니다.아직도 저는 만약에Embarcadero는 이러한 기능을 더 고려한 완전한 인터페이스를 제공할 것입니다.)

잘 이해할 수는 없지만 아마도 당신이 찾고 있는 것은: use= "optional"

<xs:element name="MyReport" type="MyReportType" />
<xs:complexType name="MyReportType">
  <xs:all>
    <xs:element name="Header" type="HeaderType" use="optional" />
    <xs:element name="Values" type="ValuesType" use="optional" />
    <xs:element name="Events" type="EventsType" use="optional" />
  </xs:all>
</xs:complexType>

괜찮으면 말해주세요.

언급URL : https://stackoverflow.com/questions/12674592/required-tags-not-present-when-using-delphi-xml-data-binding-wizard