v0.6 anyAtomicType anyURI anySimpleType anyType base64Binary boolean date dateTime dayTimeDuration decimal double duration gDay gMonth gMonthDay gYear gYearMonth hexBinary integer QName string time untyped untypedAtomic yearMonthDuration byte ENTITIES ENTITY float ID IDREF int language long Name NCName negativeInteger NMTOKEN nonNegativeInteger nonPositiveInteger normalizedString NOTATION positiveInteger short token unsignedByte unsignedInt unsignedLong unsignedShort byte ENTITIES ENTITY float ID IDREF IDREFS int language long Name NCName negativeInteger NMTOKEN NMTOKENS nonNegativeInteger nonPositiveInteger normalizedString NOTATION positiveInteger short token unsignedByte unsignedInt unsignedLong unsignedShort ISO Schematron schema of W3C XML Schema (with ) Schematron schema generated from XSD schema files by xsd2sch . See http://www.topologi.com/ and http://www.schematron.com/ ※ <xs:any> used inside ※ <xs:anyAttribute> used inside ※ <xs:union> used inside ※ <xs:list> used inside Limitations The XSD schema had constructs that are not supported by this version of the schema. These may cause results that are incorrect to some extent. , Multiple schemas define different URIs for prefix = = ================================ ================================ PHASES ================================ ================================ This active reference the pattern that check simpleTypes for namespace This active reference the pattern that check Elements for namespace This active reference the pattern that check Attributes for namespace This active reference the pattern that check IDs_and_Keys for namespace This is the Phase that has all patterns for namespace:. (No namespace) This active reference the pattern that check Simple_Types for namespace This is the Phase that has all patterns for SimpleTypes. This active reference the pattern that check Elements for namespace This is the Phase that has all patterns for Elements. This active reference the pattern that check Attributes for namespace This is the Phase that has all patterns for Global Attributes. This active reference the pattern that check ID Key REFS.. This is the Phase that has all patterns for ID Key REFS. Pattern for checking for typos in element names. Pattern for checking for typos in attribute names. This phase has all the patterns for checking typos in names. Pattern for checking for Expected in Elements names. Pattern for checking for Expected in attribute names. Pattern for checking for checking following siblings This phase has all the patterns for checking Expected in names. Pattern for checking for Required in Elements names. Pattern for checking for Required in attribute names. Pattern for checking when one element is always followed by another. This phase has all the patterns for checking Required in names. ============================================================ ============================================================ SIMPLE TYPES ============================================================ ============================================================ ============================================================ SIMPLE TYPES for NAMESPACE ============================================================ Simple Types constraints This pattern implements XSD simple type validation for the namespace: . (which do not belong to any namespace.) Element "" should have no text content. Element "" should be completely empty (no XML comments, PIs, or elements). Element "" should be completely empty (no XML comments, PIs). ============================================================ SIMPLE TYPES for NAMESPACE DEREIVED FROM BUILT-IN TYPE ============================================================ ============================================================ ============================================================ ELEMENTS ============================================================ ============================================================ ============================================================ ELEMENTS target namespace =========================================================== Element constraints for Namespaces: Local declarations Global declarations Element constraints for elements in no namespace Local declarations Global declarations ============================================================ ============================================================ Ref Global ATTRIBUTES ============================================================ ============================================================ Attributes Ref Global Attributes constraints for Namespaces: ============================================================ ============================================================ ID, IDREF, KEY and KEYREF ============================================================ ============================================================ IDs, Keys and References ============================================================ ============================================================ ELEMENT NAMES ============================================================ ============================================================ Typos in Element Names Elements alowed in Parent ============================================================ ============================================================ Attributes NAMES ============================================================ ============================================================ Typos in Attributes names Attributes allowed on Parent ============================================================ ============================================================ OCCURRENCE ============================================================ ============================================================ Required Elements Required Attributes Allowed Followers Required Immediate Followers (Simple) ============================================================ ============================================================ DIAGNOSTICS ============================================================ ============================================================ This content was found: "" or this element "". This element was found: "" in "". This attribute was found: "" on "". This element was found: "" in "". This attribute was found: "" on "". This element was found: "". This content was found: "". Generating Diagnostics for xs:all/elements "" elements were found true +++generating global attributes: true true true (. = " ") or The value of "" should be one of , . (It is of type " ".) The value of "" is a simpleType (). It should be longer than The value of "" is a simpleType (). It should be shorter than The value of "" is a simpleType (). It should be of length WhiteSpace would be treated as 'preserve', 'replace' or 'collapse' The counting doesn't include dot, leading and trailing zeros. The maximum number of digits for should be smaller than The value for should be bigger than The value for should be bigger than and equal with The value for should be smaller than The value for should be smaller than and equal with or The value for "" should match the pattern: one of patterns: Processing the simpleType inside the xs:restriction I don't know how to handle this kind of simple type yet. (simpleType inside the xs:restriction.) (Derivation by union or list) true This kind of attribute hasn't been checked, or don't need to check (. = " ") or The value of "" should be one of , . (It is of type "".) A simpleType 's value must be longer than A simpleType 's value must be shorter than A length of this simpleType 's value must be WhiteSpace would be 'preserve', 'replace' or 'collapse' The maximum number of digits for "" should smaller than xsl:comment The value for "" should be bigger than The value for "" should be bigger than or equal with The value for "" should be smaller than The value for "" should be smaller than or equal with This assertion check xs:pattern, xs:pattern could be more than one, but the value is valid when one of them is matched. or The value for "" should match the pattern: one of patterns: Global simpleType, that doesn't have xs:restriction and has list or union, hasn't been processed. I don't know how to handle this kind of simple type yet. (Derivation by union or list) Global simpleType, that doesn't have xs:restriction , hasn't been processed. I don't know how to handle this kind of simple type yet. ======= Handle XS:ALL ======== check allowed elements count( ) + = count(*) The element "" can only have the following child elements: , . check occurs for each elements count() = There should be of element "" count() <= There should be at most of element "" count() >= There should be at least of element "" check elements sequence true() PROGRAMMING ERROR: trying to process an element reference. I don't know how to handle this kind of element declaration yet. () : / @ @ @ @ ============================================== W3C XML SCHEMAS SIMPLE TYPES - PRIMITIVE TYPES One abstract rule per type. ============================================== "" elements or attributes should have value of type " ". "" elements or attributes should have a value of type" ". "" elements or attributes should have a value of type "IDREFS". "" elements or attributes should have value of type "NMTOKENS". ============================================== W3C XML SCHEMAS SIMPLE TYPES - END ============================================== ================================ PASS OK ELEMENT NAMES ================================ The element name "" is defined. ================================ FIND ELEMENT NAMES THAT ARE CLOSE ================================ The unexpected element "" has been used, which is close to an element in the schema: the element "" in the {} namespace. ================================ REPORT UNKNOWN ELEMENT NAMES ================================ Only elements declared in the schema may be used. ================================ CHECK CHILD ELEMENTS ================================ The "" element is allowed to appear under element "". ================================ CHECK GLOBAL ELEMENTS (ROOT) ================================ Because we already check all the elements that can appear in particular context, global element declarations can be used for elements that can appear as the root (or in wildcarded uses). The "" element is allowed as the root element. ================================ REPORT ELEMENTS IN UNEXPECTED POSITIONS ================================ Elements are only allowed in the document in particular parent elements. ================================ CHECK REQUIRED ELEMENTS ================================ false false true == Element "" is required under element "" ================================ PASS OK ATTRIBUTE NAMES ================================ The attribute "" is allowed. ================================ REPORT UNKNOWN ATTRIBUTE NAMES ================================ Typo: Only attributes declared in the schema may be used. ================================ CHECK POSSIBLE ATTRIBUTES ================================ The attribute is allowed on element: . The attribute "" is allowed under element "". Only attributes declared in the schema may be used. ================================ CHECK REQUIRED ATTRIBUTES ================================ The attribute "" is required for element "". The attribute "" is required for element "". ======================================== CHECK FOLLOWING ELEMENTS - PARTIAL ORDER ======================================== Partial ordering: Element B comes after element A if 1) They have same parent element (same content model) AND EITHER 2) B is in a repeating branch which has A under it OR loosely ancestor-or-self::*[@maxOccurs > 1]//element 3) B is under a following particle of a sequence which has A under it. loosely ancestor::sequence/following-sibling::*//element Note that 2) and 3) are not mutually exclusive. (This may fall over when the same element appears on multiple paths?) This does not check requirement constraints. / No sequence constraints for element . not (following-sibling::*) or ( following-sibling::*[1][name() =''] following-sibling::*[1][name() =''] or ) When in a "" element, the element "" can only be followed (perhaps with other elements intervening) by the following elements: , When in a "" element, the element "" should not be followed by any other element. ======================================================== CHECK FOLLOWING ELEMENTS - REQUIRED IMMEDIATELY FOLLOWING ======================================================== / following-sibling::*[1][self::] When in a "" element, the element "" should be immediately followed by the element "". ================================ CHECK IDS ================================ //@ = . or An element with an ID matching the IDREF supplied by "" has not been found. IDREF: . ================================ DIAGNOSTICS FOR STANDARD DATATYPES ================================ Subsequent Siblings " " is not a value allowed for xs: datatypes.