지난 10 일 내 문제의 해결책을 찾으려고 노력했지만 아무 것도 발견하지 못했습니다. 그래서 SAML 2.0의 인증 컨텍스트 XML 스키마 정의를 제한하려고합니다. XSD 문서는 http://docs.oasis-open.org/security/saml/v2.0/saml-schema-authn-context-types-2.0.xsd에서 액세스 할 수 있습니다.SAML 2.0 인증 컨텍스트의 XSD를 제한하는 방법
<xs:complexType name="PasswordType">
<xs:sequence>
<xs:element ref="Length" minOccurs="0"/>
<xs:element ref="Alphabet" minOccurs="0"/>
<xs:element ref="Generation" minOccurs="0"/>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="ExternalVerification" type="xs:anyURI" use="optional"/>
</xs:complexType>
<xs:element name="RestrictedPassword" type="RestrictedPasswordType"/>
<xs:complexType name="RestrictedPasswordType">
<xs:complexContent>
<xs:restriction base="PasswordType">
<xs:sequence>
<xs:element name="Length" type="RestrictedLengthType" minOccurs="1"/>
<xs:element ref="Generation" minOccurs="0"/>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="ExternalVerification" type="xs:anyURI" use="optional"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
글쎄, 내가 RestrictedPassword 복잡한 유형을 제한하는 방법을 모른다 :
내가 제한하려고 부분은 XSD 문서의이 부분에 관한 것입니다. 아래는 원래의 XSD 문서를 제한하려고 시도하는 나의 XSD입니다.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="2.0"
targetNamespace="urn:m:SAML:2.0:ac:classes:K"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:m:SAML:2.0:ac:classes:K"
finalDefault="extension"
blockDefault="substitution">
<xs:redefine schemaLocation="http://docs.oasis-open.org/security/saml/v2.0/saml-schema-authn-context-types-2.0.xsd">
<xs:complexType name="RestrictedPasswordType">
<xs:complexContent>
<xs:restriction base="RestrictedPasswordType">
<xs:sequence>
<xs:element ref="Length" minOccurs="0"/>
<xs:element ref="Generation"/>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="ExternalVerification" type="xs:anyURI" use="optional"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:redefine>
</xs:schema>
나는 그것이 내가 해결하는 방법을 모르는 나에게 오류를 반환 http://www.utilities-online.info/xsdvalidation/#.UwJAzK69h31이 툴이 XSD 유효성을 검사 할
. 이것은 오류입니다 :Not valid. Error - Line 12, 51: org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 51; rcase-Recurse.2: There is not a complete functional mapping between the particles. Error - Line 12, 51: org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 51; derivation-ok-restriction.5.4.2: Error for type 'RestrictedPasswordType'. The particle of the type is not a valid restriction of the particle of the base.
어떤 도움을 환영합니다.
감사합니다. 도메네크, 말론
안녕, 난 당신과 동의합니다. 제안 된대로 XSD를 변경했는데 다음과 같이 오류가 있습니다 (이전과 같은 오류입니다). 유효하지 않습니다. 오류 - 12 번째 줄, 51 : org.xml.sax.SAXParseException; lineNumber : 12; columnNumber : 51; rcase-Recurse.2 : 입자 사이에 완전한 기능 매핑이 없습니다. 오류 - 12 번째 줄, 51 : org.xml.sax.SAXParseException; lineNumber : 12; columnNumber : 51; derivation-ok-restriction.5.4.2 : 'RestrictedPasswordType'유형의 오류입니다. 해당 유형의 입자가 기본 입자의 유효한 제한 사항이 아닙니다. – marloncdomenech
위에서 링크 한 기본 문서는'targetNamespace'를 선언하지 않습니다. 그러나 파생 된 스키마에서 하나를 선언합니다. 다시 정의 된 스키마는 기본 스키마와 동일한'targetNamespace'를 가져야합니다. 여러분의 스키마에서'xmlns'와'targetNamespace' 속성을 제거해보십시오. – helderdarocha
효과가있었습니다. 나는'xmlns'과'targetNamespace'를 없애고 작동했다. 그러나 원본과는 다른'xmlns'와'targetNamespace '를 정의하는 유사한 문서가 있으며 유효합니다. 다음은 그 예입니다 : [http://docs.oasis-open.org/security/saml/v2.0/saml-schema-authn-context-nomad-telephony-2.0.xsd. 왜 그런지 알아? – marloncdomenech