xsdの書き方について質問です。
以下のようなXMLに対して、妥当性検証を行ったところ、
「cvc-complex-type.2.4.a: 要素'dsig:Signature'で始まる無効なコンテンツが見つかりました。」
というエラーが出てしまいました。
XSDに慣れておらず、<xsd:element name="Signature" type="SignatureType"/>の箇所を
<xsd:element name="dsig:Signature" type="SignatureType"/>にしてみたりしましたが、今度は
- s4s-att-must-appear: 属性 'name' は要素 'element' に現れなければなりません。
- s4s-att-invalid-value: Invalid attribute value for 'name' in element 'element'. Recorded reason: cvc-datatype-valid.1.2.1: 'dsig:Signature' is not a valid value
というエラーが出てしまい、うまくいきませんでした。
このXMLの妥当性チェックが通るためには、XSDをどのように修正すればよいでしょうか。
(本来はXSDに合った形のXMLを出力すべきですが、暫定対応でXSDを修正しようと思っています)
xml
1 2<?xml version="1.0" encoding="UTF-8" ?> 3<?xml-stylesheet type="text/xsl" href="http://xml.XXXXXX.jp/XXX/XXXXXX.xsl"?> 4<AAA xmlns="http://xml.XXXXXX.jp/XXX/aaaaaa" xmlns:gen="http://xml.XXXXXX.jp/XXX/XXXXXX" VR="1.0"> 5 6 (中略) 7 8 <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="a"> 9 <dsig:SignedInfo> 10 <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> 11 <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> 12 <dsig:Reference URI="#ZZZZZZ"> 13 <dsig:Transforms> 14 <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> 15 </dsig:Transforms> 16 <dsig:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> 17 <dsig:DigestValue>V3hmkO0FK8ICbtl87y76kpxfKE+qUmKFfNDYeuR85+A=</dsig:DigestValue> 18 </dsig:Reference> 19 </dsig:SignedInfo> 20 <dsig:SignatureValue>te0OoWWC2H1..</dsig:SignatureValue> 21 <dsig:KeyInfo> 22 <dsig:X509Data> 23 <dsig:X509Certificate>MIIDkjCCAnqgA..</dsig:X509Certificate> 24 </dsig:X509Data> 25 </dsig:KeyInfo> 26 </dsig:Signature> 27</TEG700> 28
妥当性チェックを行うXSD
xsd
1<?xml version="1.0" encoding="UTF-8" ?> 2<xsd:schema targetNamespace="http://xml.XXXXXX.jp/XXX/aaaaaa" 3xmlns="http://xml.XXXXXX.jp/XXX/aaaaaa" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" 4xmlns:gen="http://xml.XXXXXX.jp/XXX/XXXXXX" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" > 5<xsd:annotation> 6<xsd:documentation> 7version:1.0 8Date:2017年MM月DD日 9</xsd:documentation> 10</xsd:annotation> 11 12<!-- version --> 13<xsd:simpleType name="AAA-1-0VRtype"><xsd:restriction base="xsd:string"><xsd:enumeration value="1.0"/></xsd:restriction></xsd:simpleType> 14<!-- Root Element Definition --> 15<xsd:element name="AAA" type="AAA-1-0type"/> 16 17<xsd:complexType name="AAA-1-0type"> 18<xsd:sequence> 19 20<xsd:element name="BBB00000" type="BBB00000-1-0Rtype" minOccurs="0"> 21<xsd:annotation> 22<xsd:appinfo>"テスト"</xsd:appinfo> 23</xsd:annotation> 24</xsd:element> 25 26(中略) 27 28<!-- XML-SIGNATURE --> 29<xsd:element ref="Signature" minOccurs="1" maxOccurs="1"/> 30</xsd:sequence> 31<xsd:attribute name="VR" 32type="AAA-1-0VRtype" 33use="required"/> 34<xsd:attributeGroup ref="FormAttribute" /> 35</xsd:complexType> 36 37<xsd:element name="Signature" type="SignatureType"/> 38<xsd:complexType name="SignatureType"> 39 <xsd:sequence> 40 <xsd:element ref="SignedInfo" /> 41 <xsd:element ref="SignatureValue" /> 42 <xsd:element ref="KeyInfo" minOccurs="0" /> 43 <xsd:element ref="Object" minOccurs="0" maxOccurs="unbounded" /> 44 </xsd:sequence> 45 <xsd:attribute name="Id" type="xsd:ID" use="required" /> 46</xsd:complexType> 47 48(以下省略) 49
あなたの回答
tips
プレビュー