XSD 스키마를 생성하는 데있어서 최고가 아니기 때문에 실제로는 첫 번째 요소가됩니다. xml의 유효성을 검사하고 싶습니다.가변 요소 이름으로 인해 xsd 스키마를 설계 할 수 없습니다.
<?xml version="1.0"?>
<Data>
<FIELD name='toto'>
<META mono='false' dynamic='false'>
<COLUMN1>
<REFTABLE>table</REFTABLE>
<REFCOLUMN>key_column</REFCOLUMN>
<REFLABELCOLUMN>test_column</REFLABELCOLUMN>
</COLUMN1>
<COLUMN2>
<REFTABLE>table</REFTABLE>
<REFCOLUMN>key_column</REFCOLUMN>
<REFLABELCOLUMN>test_column</REFLABELCOLUMN>
</COLUMN2>
</META>
<VALUEs>
<VALUE>...</VALUE>
</VALUEs>
</FIELD>
내 문제는 META에 태그 "COLUMN1"를 차단하는 것 "COLUMN2"항상 다른, 그것은 COLUMNxxx 될 수 있습니다. 난 내 노드의 정확한 수준이 명확하지이며, 나머지는 사실을 처리하는 방법을 모르는,
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FIELD" type="Field" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:int" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:complexType name="dataSourceDef">
<xsd:sequence>
<xsd:element name="DSD_REFTABLE" type="xsd:string" />
<xsd:element name="DSD_REFCOLUMN" type="xsd:string" />
<xsd:element name="DSD_REFLABELCOLUMN" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MetaTag">
<xsd:sequence>
<xsd:any processContents="lax" />
</xsd:sequence>
<xsd:attribute name="mono" type="xsd:string" use="required" />
<xsd:attribute name="dynamic" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="Field">
<xsd:sequence>
<xsd:element name="META" type="MetaTag" minOccurs="1" />
<xsd:element name="VALUEs">
<xsd:complexType>
<xsd:sequence>
<xsd:any processContents="lax" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:schema>
그리고 난 그냥 동작하지 않습니다 : 지금 내 스키마입니다 .
제발 도와 주시겠습니까?
: 당신은 속성으로 는 minOccurs 및 maxOccurs에 아이들의 숫자가있을 수 있다는 것을 알려줄 필요 모든. 어쩌면 xsd : any 요소를 사용하고 있을까요? –