JAXB

2012-01-18 3 views
0
<?xml version="1.0" encoding="ISO-8859-1"?> 

<schema                                                                 
    xmlns="http://www.w3.org/2001/XMLSchema" 
    xmlns:s="http://niem.gov/niem/structures/2.0" 
    xmlns:nc="http://niem.gov/niem/niem-core/2.0" 

    targetNamespace="http://www.test.com" 
> 

    <import namespace="http://niem.gov/niem/structures/2.0" schemaLocation="./niem/structures/2.0/structures.xsd"/> 
    <import namespace="http://niem.gov/niem/niem-core/2.0" schemaLocation="./niem/niem-core/2.0/niem-core.xsd"/> 

    <complexType name="TestType"> 
      <complexContent> 
      <extension base="s:ComplexObjectType"> 
      </extension> 
     </complexContent> 
    </complexType> 

</schema> 
 
    [java] Exception in thread "main" javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory could not be instantiated: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions 
    [java] No element mapping exists for "http://niem.gov/niem/structures/2.0":"Augmentation" 
    [java]  this problem is related to the following location: 
    [java]   at @javax.xml.bind.annotation.XmlElementDecl(scope=class javax.xml.bind.annotation.XmlElementDecl$GLOBAL, substitutionHeadName=Augmentation, defaultValue=^@, substitutionHeadNamespace=http://niem.gov/niem/structures/2.0, namespace=http://niem.gov/niem/ansi-nist/2.0, name=ProtectionOrderAugmentation) 
    [java]   at public javax.xml.bind.JAXBElement gov.niem.niem.ansi_nist._2.ObjectFactory.createProtectionOrderAugmentation(gov.niem.niem.ansi_nist._2.ProtectionOrderAugmentationType) 
    [java]   at gov.niem.niem.ansi_nist._2.ObjectFactory 
    [java]   at protected java.util.List gov.niem.niem.ansi_nist._2.FingerprintPalmImagePositionType.palmPosition 
    [java]   at gov.niem.niem.ansi_nist._2.FingerprintPalmImagePositionType 
    [java]   at @javax.xml.bind.annotation.XmlSeeAlso(value=[class gov.niem.niem.ansi_nist._2.MajorCasePrintSegmentOffsetType, class gov.niem.niem.ansi_nist._2.FingerprintImageNISTQualityType, class gov.niem.niem.ansi_nist._2.FingerprintImageQualityType, class gov.niem.niem.ansi_nist._2.FingerprintImageMajorCasePrintType, class gov.niem.niem.ansi_nist._2.FingerprintPalmImagePositionType]) 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.FingerprintSetType.fingerprint 
    [java]   at gov.niem.niem.niem_core._2.FingerprintSetType 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.PersonType.personFingerprintSet 
    [java]   at gov.niem.niem.niem_core._2.PersonType 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.ContactInformationType.contactResponder 
    [java]   at gov.niem.niem.niem_core._2.ContactInformationType 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.LocationType.locationContactInformation 
    [java]   at gov.niem.niem.niem_core._2.LocationType 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.ImageType.imageLocation 
    [java]   at gov.niem.niem.niem_core._2.ImageType 
    [java]   at public javax.xml.bind.JAXBElement gov.niem.niem.niem_core._2.ObjectFactory.createImage(gov.niem.niem.niem_core._2.ImageType) 
    [java]   at gov.niem.niem.niem_core._2.ObjectFactory 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.ToothType.toothPosition 
    [java]   at gov.niem.niem.niem_core._2.ToothType 
    [java]   at @javax.xml.bind.annotation.XmlSeeAlso(value=[class com.test.TestType, class gov.niem.niem.niem_core._2.ToothType, class gov.niem.niem.niem_core._2.DateType, class gov.niem.niem.niem_core._2.LocationType, class gov.niem.niem.niem_core._2.EntityType, class gov.niem.niem.niem_core._2.BiometricType, class gov.niem.niem.niem_core._2.IdentificationType, class gov.niem.niem.niem_core._2.LocaleType, class gov.niem.niem.niem_core._2.OrganizationType, class gov.niem.niem.niem_core._2.ObligationType, class gov.niem.niem.niem_core._2.DNALocusType, class gov.niem.niem.niem_core._2.PropertyType, class gov.niem.niem.niem_core._2.RelativeLocationType, class gov.niem.niem.niem_core._2.PersonNameType, class gov.niem.niem.niem_core._2.ObligationExemptionType, class gov.niem.niem.niem_core._2.MeasureRangeValueType, class gov.niem.niem.niem_core._2.FacilityType, class gov.niem.niem.niem_core._2.ItemValueType, class gov.niem.niem.niem_core._2.TelephoneNumberType, class gov.niem.niem.niem_core._2.AddressType, class gov.niem.niem.niem_core._2.MapLocationType, class gov.niem.niem.niem_core._2.TwoDimensionalGeographicCoordinateType, class gov.niem.niem.niem_core._2.PersonLanguageType, class gov.niem.niem.niem_core._2.ContactInformationType, class gov.niem.niem.niem_core._2.PersonType, class gov.niem.niem.niem_core._2.PassportType, class gov.niem.niem.niem_core._2.LatitudeCoordinateType, class gov.niem.niem.niem_core._2.MedicalConditionType, class gov.niem.niem.niem_core._2.DocumentType, class gov.niem.niem.niem_core._2.SupervisionType, class gov.niem.niem.niem_core._2.InjuryType, class gov.niem.niem.niem_core._2.HighwayType, class gov.niem.niem.niem_core._2.InternationalTelephoneNumberType, class gov.niem.niem.niem_core._2.ItemTitleType, class gov.niem.niem.niem_core._2.DNAType, class gov.niem.niem.niem_core._2.JurisdictionType, class gov.niem.niem.niem_core._2.LesseeType, class gov.niem.niem.niem_core._2.ScheduleDayType, class gov.niem.niem.niem_core._2.ClothingType, class gov.niem.niem.niem_core._2.CapabilityType, class gov.niem.niem.niem_core._2.WeaponType, class gov.niem.niem.niem_core._2.IntoxicationType, class gov.niem.niem.niem_core._2.AddressGridType, class gov.niem.niem.niem_core._2.EncounterClassificationType, class gov.niem.niem.niem_core._2.LienType, class gov.niem.niem.niem_core._2.DateRangeType, class gov.niem.niem.niem_core._2.UTMCoordinateType, class gov.niem.niem.niem_core._2.LongitudeCoordinateType, class gov.niem.niem.niem_core._2.VehicleBranderType, class gov.niem.niem.niem_core._2.AreaType, class gov.niem.niem.niem_core._2.DrivingRestrictionType, class gov.niem.niem.niem_core._2.DecalType, class gov.niem.niem.niem_core._2.LessorType, class gov.niem.niem.niem_core._2.CaseDispositionDecisionType, class gov.niem.niem.niem_core._2.EmailType, class gov.niem.niem.niem_core._2.StreetType, class gov.niem.niem.niem_core._2.FingerprintSetType, class gov.niem.niem.niem_core._2.ItemRegistrationType, class gov.niem.niem.niem_core._2.PhysicalFeatureType, class gov.niem.niem.niem_core._2.CircularRegionType, class gov.niem.niem.niem_core._2.NANPTelephoneNumberType, class gov.niem.niem.niem_core._2.InsuranceType, class gov.niem.niem.niem_core._2.StatusType, class gov.niem.niem.niem_core._2.FullTelephoneNumberType, class gov.niem.niem.niem_core._2.ContactRadioType, class gov.niem.niem.niem_core._2.DispositionType, class gov.niem.niem.niem_core._2.MeasureType, class gov.niem.niem.niem_core._2.StructuredAddressType, class gov.niem.niem.niem_core._2.KitType, class gov.niem.niem.niem_core._2.MilitarySummaryType, class gov.niem.niem.niem_core._2.LienHolderType, class gov.niem.niem.niem_core._2.AngularMeasureType, class gov.niem.niem.niem_core._2.VehicleBrandType, class gov.niem.niem.niem_core._2.InstantMessengerType, class gov.niem.niem.niem_core._2.DriverLicenseBaseType, class gov.niem.niem.niem_core._2.CrossStreetType, class gov.niem.niem.niem_core._2.ActivityType, class gov.niem.niem.niem_core._2.ItemType, class gov.niem.niem.niem_core._2.AssociationType, class gov.niem.niem.niem_core._2.IdentityType, class gov.niem.niem.ansi_nist._2.ImageQualityType, class gov.niem.niem.ansi_nist._2.TransactionType, class gov.niem.niem.ansi_nist._2.SignatureImageVectorType, class gov.niem.niem.ansi_nist._2.PhysicalFeatureSizeType, class gov.niem.niem.ansi_nist._2.FaceImageAttributeType, class gov.niem.niem.ansi_nist._2.PhysicalFeatureColorDetailType, class gov.niem.niem.ansi_nist._2.MinutiaType, class gov.niem.niem.ansi_nist._2.MinutiaeType, class gov.niem.niem.ansi_nist._2.OrganizationDocumentCountType, class gov.niem.niem.ansi_nist._2.TransactionCharacterSetDirectoryType, class gov.niem.niem.ansi_nist._2.SignatureImageVectorRepresentationType, class gov.niem.niem.ansi_nist._2.TransactionImageResolutionType, class gov.niem.niem.ansi_nist._2.FingerprintPatternType, class gov.niem.niem.ansi_nist._2.NISTStandardMinutiaeType, class gov.niem.niem.ansi_nist._2.FaceImageFeaturePointType, class gov.niem.niem.ansi_nist._2.PhysicalFeatureDescriptionType, class gov.niem.niem.ansi_nist._2.MinutiaeReadingSystemType, class gov.niem.niem.ansi_nist._2.MinutiaeFingerPositionType, class gov.niem.niem.ansi_nist._2.ImageCaptureType, class gov.niem.niem.ansi_nist._2.MinutiaeFingerPatternType, class gov.niem.niem.niem_core._2.BinaryType, class gov.niem.niem.ansi_nist._2.ContentRecordType, class gov.niem.niem.ansi_nist._2.MinutiaPositionType, class gov.niem.niem.ansi_nist._2.TransactionContentSummaryType, class gov.niem.niem.ansi_nist._2.TransactionDomainType, class gov.niem.niem.ansi_nist._2.RecordType, class gov.niem.niem.ansi_nist._2.PoseAngleType, class gov.niem.niem.ansi_nist._2.IdentificationRangeType, class gov.niem.niem.ansi_nist._2.FingerprintType]) 
    [java]   at com.test.TestType 
    [java]   at public com.test.TestType com.test.ObjectFactory.createTestType() 
    [java]   at com.test.ObjectFactory 
    [java] No element mapping exists for "http://niem.gov/niem/structures/2.0":"Augmentation" 
    [java]  this problem is related to the following location: 
    [java]   at @javax.xml.bind.annotation.XmlElementDecl(scope=class javax.xml.bind.annotation.XmlElementDecl$GLOBAL, substitutionHeadName=Augmentation, defaultValue=^@, substitutionHeadNamespace=http://niem.gov/niem/structures/2.0, namespace=http://niem.gov/niem/ansi-nist/2.0, name=ActivityAugmentation) 
    [java]   at public javax.xml.bind.JAXBElement gov.niem.niem.ansi_nist._2.ObjectFactory.createActivityAugmentation(gov.niem.niem.ansi_nist._2.ActivityAugmentationType) 
    [java]   at gov.niem.niem.ansi_nist._2.ObjectFactory 
    [java]   at protected java.util.List gov.niem.niem.ansi_nist._2.FingerprintPalmImagePositionType.palmPosition 
    [java]   at gov.niem.niem.ansi_nist._2.FingerprintPalmImagePositionType 
    [java]   at @javax.xml.bind.annotation.XmlSeeAlso(value=[class gov.niem.niem.ansi_nist._2.MajorCasePrintSegmentOffsetType, class gov.niem.niem.ansi_nist._2.FingerprintImageNISTQualityType, class gov.niem.niem.ansi_nist._2.FingerprintImageQualityType, class gov.niem.niem.ansi_nist._2.FingerprintImageMajorCasePrintType, class gov.niem.niem.ansi_nist._2.FingerprintPalmImagePositionType]) 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.FingerprintSetType.fingerprint 
    [java]   at gov.niem.niem.niem_core._2.FingerprintSetType 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.PersonType.personFingerprintSet 
    [java]   at gov.niem.niem.niem_core._2.PersonType 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.ContactInformationType.contactResponder 
    [java]   at gov.niem.niem.niem_core._2.ContactInformationType 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.LocationType.locationContactInformation 
    [java]   at gov.niem.niem.niem_core._2.LocationType 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.ImageType.imageLocation 
    [java]   at gov.niem.niem.niem_core._2.ImageType 
    [java]   at public javax.xml.bind.JAXBElement gov.niem.niem.niem_core._2.ObjectFactory.createImage(gov.niem.niem.niem_core._2.ImageType) 
    [java]   at gov.niem.niem.niem_core._2.ObjectFactory 
    [java]   at protected java.util.List gov.niem.niem.niem_core._2.ToothType.toothPosition 
    [java]   at gov.niem.niem.niem_core._2.ToothType 
    [java]   at @javax.xml.bind.annotation.XmlSeeAlso(value=[class com.test.TestType, class gov.niem.niem.niem_core._2.ToothType, class gov.niem.niem.niem_core._2.DateType, class gov.niem.niem.niem_core._2.LocationType, class gov.niem.niem.niem_core._2.EntityType, class gov.niem.niem.niem_core._2.BiometricType, class gov.niem.niem.niem_core._2.IdentificationType, class gov.niem.niem.niem_core._2.LocaleType, class gov.niem.niem.niem_core._2.OrganizationType, class gov.niem.niem.niem_core._2.ObligationType, class gov.niem.niem.niem_core._2.DNALocusType, class gov.niem.niem.niem_core._2.PropertyType, class gov.niem.niem.niem_core._2.RelativeLocationType, class gov.niem.niem.niem_core._2.PersonNameType, class gov.niem.niem.niem_core._2.ObligationExemptionType, class gov.niem.niem.niem_core._2.MeasureRangeValueType, class gov.niem.niem.niem_core._2.FacilityType, class gov.niem.niem.niem_core._2.ItemValueType, class gov.niem.niem.niem_core._2.TelephoneNumberType, class gov.niem.niem.niem_core._2.AddressType, class gov.niem.niem.niem_core._2.MapLocationType, class gov.niem.niem.niem_core._2.TwoDimensionalGeographicCoordinateType, class gov.niem.niem.niem_core._2.PersonLanguageType, class gov.niem.niem.niem_core._2.ContactInformationType, class gov.niem.niem.niem_core._2.PersonType, class gov.niem.niem.niem_core._2.PassportType, class gov.niem.niem.niem_core._2.LatitudeCoordinateType, class gov.niem.niem.niem_core._2.MedicalConditionType, class gov.niem.niem.niem_core._2.DocumentType, class gov.niem.niem.niem_core._2.SupervisionType, class gov.niem.niem.niem_core._2.InjuryType, class gov.niem.niem.niem_core._2.HighwayType, class gov.niem.niem.niem_core._2.InternationalTelephoneNumberType, class gov.niem.niem.niem_core._2.ItemTitleType, class gov.niem.niem.niem_core._2.DNAType, class gov.niem.niem.niem_core._2.JurisdictionType, class gov.niem.niem.niem_core._2.LesseeType, class gov.niem.niem.niem_core._2.ScheduleDayType, class gov.niem.niem.niem_core._2.ClothingType, class gov.niem.niem.niem_core._2.CapabilityType, class gov.niem.niem.niem_core._2.WeaponType, class gov.niem.niem.niem_core._2.IntoxicationType, class gov.niem.niem.niem_core._2.AddressGridType, class gov.niem.niem.niem_core._2.EncounterClassificationType, class gov.niem.niem.niem_core._2.LienType, class gov.niem.niem.niem_core._2.DateRangeType, class gov.niem.niem.niem_core._2.UTMCoordinateType, class gov.niem.niem.niem_core._2.LongitudeCoordinateType, class gov.niem.niem.niem_core._2.VehicleBranderType, class gov.niem.niem.niem_core._2.AreaType, class gov.niem.niem.niem_core._2.DrivingRestrictionType, class gov.niem.niem.niem_core._2.DecalType, class gov.niem.niem.niem_core._2.LessorType, class gov.niem.niem.niem_core._2.CaseDispositionDecisionType, class gov.niem.niem.niem_core._2.EmailType, class gov.niem.niem.niem_core._2.StreetType, class gov.niem.niem.niem_core._2.FingerprintSetType, class gov.niem.niem.niem_core._2.ItemRegistrationType, class gov.niem.niem.niem_core._2.PhysicalFeatureType, class gov.niem.niem.niem_core._2.CircularRegionType, class gov.niem.niem.niem_core._2.NANPTelephoneNumberType, class gov.niem.niem.niem_core._2.InsuranceType, class gov.niem.niem.niem_core._2.StatusType, class gov.niem.niem.niem_core._2.FullTelephoneNumberType, class gov.niem.niem.niem_core._2.ContactRadioType, class gov.niem.niem.niem_core._2.DispositionType, class gov.niem.niem.niem_core._2.MeasureType, class gov.niem.niem.niem_core._2.StructuredAddressType, class gov.niem.niem.niem_core._2.KitType, class gov.niem.niem.niem_core._2.MilitarySummaryType, class gov.niem.niem.niem_core._2.LienHolderType, class gov.niem.niem.niem_core._2.AngularMeasureType, class gov.niem.niem.niem_core._2.VehicleBrandType, class gov.niem.niem.niem_core._2.InstantMessengerType, class gov.niem.niem.niem_core._2.DriverLicenseBaseType, class gov.niem.niem.niem_core._2.CrossStreetType, class gov.niem.niem.niem_core._2.ActivityType, class gov.niem.niem.niem_core._2.ItemType, class gov.niem.niem.niem_core._2.AssociationType, class gov.niem.niem.niem_core._2.IdentityType, class gov.niem.niem.ansi_nist._2.ImageQualityType, class gov.niem.niem.ansi_nist._2.TransactionType, class gov.niem.niem.ansi_nist._2.SignatureImageVectorType, class gov.niem.niem.ansi_nist._2.PhysicalFeatureSizeType, class gov.niem.niem.ansi_nist._2.FaceImageAttributeType, class gov.niem.niem.ansi_nist._2.PhysicalFeatureColorDetailType, class gov.niem.niem.ansi_nist._2.MinutiaType, class gov.niem.niem.ansi_nist._2.MinutiaeType, class gov.niem.niem.ansi_nist._2.OrganizationDocumentCountType, class gov.niem.niem.ansi_nist._2.TransactionCharacterSetDirectoryType, class gov.niem.niem.ansi_nist._2.SignatureImageVectorRepresentationType, class gov.niem.niem.ansi_nist._2.TransactionImageResolutionType, class gov.niem.niem.ansi_nist._2.FingerprintPatternType, class gov.niem.niem.ansi_nist._2.NISTStandardMinutiaeType, class gov.niem.niem.ansi_nist._2.FaceImageFeaturePointType, class gov.niem.niem.ansi_nist._2.PhysicalFeatureDescriptionType, class gov.niem.niem.ansi_nist._2.MinutiaeReadingSystemType, class gov.niem.niem.ansi_nist._2.MinutiaeFingerPositionType, class gov.niem.niem.ansi_nist._2.ImageCaptureType, class gov.niem.niem.ansi_nist._2.MinutiaeFingerPatternType, class gov.niem.niem.niem_core._2.BinaryType, class gov.niem.niem.ansi_nist._2.ContentRecordType, class gov.niem.niem.ansi_nist._2.MinutiaPositionType, class gov.niem.niem.ansi_nist._2.TransactionContentSummaryType, class gov.niem.niem.ansi_nist._2.TransactionDomainType, class gov.niem.niem.ansi_nist._2.RecordType, class gov.niem.niem.ansi_nist._2.PoseAngleType, class gov.niem.niem.ansi_nist._2.IdentificationRangeType, class gov.niem.niem.ansi_nist._2.FingerprintType]) 
    [java]   at com.test.TestType 
    [java]   at public com.test.TestType com.test.ObjectFactory.createTestType() 
    [java]   at com.test.ObjectFactory 

나는 원인이 무엇인지 알아 내려고 지금 일했습니다. AugmentationAugmentationType./niem/niem-core/2.0/niem-core.xsdJAXB

에 선언 된 NIEM의 XSD 파일은 여기에서 찾을 수 있습니다

JAXBContext jc = JAXBContext.newInstance("com.test"); 
,369 :

Test.java 파일은 실패

jaxb 구현에 내장 된 JDK6을 사용하고 java.net에있는 최신 jaxb 구현을 재정의하고 jre/lib/endorsed에 api jar를 넣으려고 시도했습니다.

나는 비슷한 오류와 함께 this old forum message from 2007을 발견했습니다. 해당 스레드의 xml 비트를 보려면 browser-view-source를 수행해야합니다. 나는 이것에 모든 종류의 변형을 시도해 보았는데, 현재 niem 스키마가 어떻게 보이는지 조정했지만, 어떤 감각도 갖지 못합니다.

이것은 jaxb xjc 컴파일러의 버그 또는 niem 스키마 파일의 버그입니까?

xjc -d src/java -b bindings.xml src/jaxb/test.xsd 

bindings.xml :

<jaxb:bindings 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    jaxb:version="2.0" 
> 
    <jaxb:globalBindings underscoreBinding="asCharInWord"> 
    </jaxb:globalBindings> 
</jaxb:bindings> 

답변

0
분명히, 나는이 같은 XML 파일을 컴파일하고있어

... 그것은 XMLSPY로 컴파일,하지만 난 가능하면 JAXB xjc를/고수 할

24 대신 JDK 1.6 업데이트 16을 사용해야했습니다. 그 원인이 무엇인지 모르겠지만 어떤 이유로 든 해결했습니다.

1

NIEM을 기반으로 ECF-4.0 메시지를 언 마샬링하는 것과 비슷한 문제가있었습니다. 나는 명시 적으로 대신 패키지 이름의 ObjectFactory를 클래스에서 내 JAXBContext에를 구성하여 그것을 해결 : 그 변경 한 후

ecf4Context = JAXBContext.newInstance(gov.niem.niem.structures._2.ObjectFactory.class, 
     oasis.names.tc.legalxml_courtfiling.schema.xsd.corefilingmessage_4.ObjectFactory.class); 

, 나는 자바로 복잡한 메시지를 가져 오기 위해 신속하게 할 수 있었다.

0

JAXBContext.newInstance()의 모든 관련 클래스 또는 객체 팩토리를 쉼표로 구분 된 매개 변수로 전달해야합니다.