XML belgelerini doğrulamak için bir XSD belirtmem gerekiyor. XSD, bir JAXB nesli Java bağlamaları için kullanılacaktır. Sorunum, adlarını bilmediğim ve genelde ayrıştırma yapmak istemediğim isteğe bağlı öğeleri belirtmektir.<all> ve <any> öğelerini kullanarak açık olan geçerli bir XSD oluşturma
XML belgelerinin yapısı gibidir:
<TRADE>
<TIME>12:12</TIME>
<MJELLO>12345</MJELLO>
<OPTIONAL>12:12</OPTIONAL>
<DATE>25-10-2011</DATE>
<HELLO>hello should be ignored</HELLO>
</TRADE>
önemli şey, o: Ben herhangi bir sipariş kabul edemeyiz ve sonraki XML belgesi örneği etiketine sahip migtht
- Farklı bir sırada
- Yalnızca bazı etiketlerin ayrıştırılmasıyla ilgileniyorum, bazıları zorunludur ve bazıları isteğe bağlıdır
- XML docume nts Ben
ayrıştırma ilgilenmiyorum yeni unsurlarla uzatılabilir benim XSD yapısı gibi (geçerli bir xsd) 'dir:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- *********************************************** -->
<!-- Trade element definitions for the XML Documents -->
<!-- *********************************************** -->
<xs:complexType name="Trade">
<!-- Using the all construction ensures that the order does not matter -->
<xs:all>
<xs:element name="DATE" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="TIME" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="OPTIONAL" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:any minOccurs="0"/>
</xs:all>
</xs:complexType>
<!-- TRADE is the mandatory top-level tag -->
<xs:element name="TRADE" type="Trade"/>
</xs:schema>
Yani, bu örnekte : DATE ve TIME zorunludur (XML'de tam olarak bir kez olmalılar), OPTIONAL bir kez mevcut olabilir ve daha sonra tüm diğer etiketlere izin verildiğini belirtmek isterim. Emir önemli değil.
Bunun için geçerli bir XSD'yi nasıl belirlerim?
Ben elemanlar max defa görünür biliyorum yani, –
Ayrıştırma adımından önce bir XSLT adımı olan sona erdi.Bu, önce ilgimi çekmediğim tüm etiketleri filtreleyerek ve sonra yalnızca ilgilendiğim öğeleri içeren bir "ince" xsd'ye göre doğrulayarak doğrular. –
eğer 'asla' bir tarih 'veya' zaman 'olmayacaksa, o zaman herhangi bir belirsizlik olmayacaksa –